Important: Please read the Qt Code of Conduct -

SegFault when using grabGesture and doubleclick

  • I am having trouble with connecting to the double click of my QTableView when using LeftMouseButtonGesture. I am getting a segmentation fault. I have a crash dump from my android Application as well. However this is happening on desktop and on Android

    QScroller::grabGesture(tableView.viewport(), QScroller::LeftMouseButtonGesture);

    I am using the python equivalent of the call above.

    I double click on the tableview and that works.. I go back and double click a second time on the tableview and Thats when it segfaults the below

    Build fingerprint: 'samsung/afyonltetmo/afyonltetmo:4.4.2/KOT49H/G386TUVU1ANK3:user/release-keys'
    Revision: '6'
    pid: 9090, tid: 9118, name: omputer.pacetab >>> org.pacecomputer.pacetab <<<
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 8902e8ff
    r0 791395d8 r1 7c054c8c r2 00000000 r3 00000001
    r4 7afabad0 r5 791395cc r6 7bccd490 r7 791395d8
    r8 791395d0 r9 8902e8ff sl 00000109 fp 7afabaec
    ip 77d92014 sp 791395b8 lr 77b5b405 pc 77b7f24c cpsr 000f0030
    d0 0000000300000002 d1 0000000077cc9781
    d2 0000000100000003 d3 0000000077cc9991
    d4 0000000000000000 d5 0000000000000000
    d6 0000015a00000000 d7 4075400000000000
    d8 3fe0000000000000 d9 4080527271000000
    d10 407624b4b3000000 d11 4045b1b1e0000000
    d12 40396969a0000000 d13 0000000000000000
    d14 0000000000000000 d15 3ff0000000000000
    d16 0000000100000000 d17 0000000077cc957d
    d18 0000000200000001 d19 0000000077cc961d
    d20 0000000300000001 d21 0000000077cc95e7
    d22 0000000200000002 d23 0000000077cc8cf1
    d24 3fc74721cad6b0ed d25 3fc2f112df3e5244
    d26 40026bb1bbb55516 d27 0000000000000000
    d28 0000000000000000 d29 0000000000000000
    d30 0000000000000000 d31 0000000000000000
    scr 20000013

    #00 pc 000fd24c /data/app-lib/org.pacecomputer.pacetab-2/
    #01 pc 000fdb59 /data/app-lib/org.pacecomputer.pacetab-2/
    #02 pc 000fe091 /data/app-lib/org.pacecomputer.pacetab-2/
    #03 pc 000dce75 /data/app-lib/org.pacecomputer.pacetab-2/ (QApplication::notify(QObject*, QEvent*)+364)
    #04 pc 0069d787 /data/app-lib/org.pacecomputer.pacetab-2/ (sipQApplication::notify(QObject*, QEvent*)+58)
    #05 pc 001ad137 /data/app-lib/org.pacecomputer.pacetab-2/ (QCoreApplication::notifyInternal(QObject*, QEvent*)+62)

    code around pc:
    77b7f22c eb033104 930b0381 f8e1f7dc f7dc4658
    77b7f23c f104f8de 9b090b1c 4638b1cb f8d7f7dc
    77b7f24c 3000f8d9 46314648 4798689b bb189005
    77b7f25c e0792500 58f84b40 eab2f7d2 28004605
    77b7f26c 68f3d172 3106f893 0f40f013 9b0ae7b1
    77b7f27c 428b990b 681bd0e1 46414658 f7fe9306
    77b7f28c 4581f952 4638d104 f7dc9d06 e05bf8b0
    77b7f29c 33049b0a e7ce930a f7d24621 9805edaa
    77b7f2ac fe20f7fb 7f80f5b0 9b05d103 f8c3685b
    77b7f2bc f104a040 f8cd0b18 9608a024 f7ff4658
    77b7f2cc 69a0fdce f7fe4639 f100fae1 b9580a14
    77b7f2dc 46589b03 46424639 f7ff9306 f100ff23
    77b7f2ec 46400a14 f883f7dc f1044650 46290a1c
    77b7f2fc f888f7dc f7fe4650 4650f927 46424629
    77b7f30c f8eef7fe 468369e3 42986800 f7dbd112
    77b7f31c b128f924 46294650 f7fe4642 4683f8e1

    code around lr:
    77b5b3e4 e0061022 90016808 f7f64620 9b01e9d6
    77b5b3f4 b0036003 b510bdf0 68004604 ffa3f7fc
    77b5b404 6820b910 e90ef7f6 bd104620 4604b5f7
    77b5b414 460d6802 2b016813 ab02d93c 4100f06f
    77b5b424 1d04f843 68974619 eb023704 22010787
    77b5b434 e9acf7f6 99016823 4606463a 30046898
    77b5b444 0080eb03 0181eb00 ffd5f7fe 68239a01
    77b5b454 ea4f3201 689a0e82 320468d9 eb033104
    77b5b464 f1ae0082 44700204 0181eb03 f7fe443a
    77b5b474 4630ffc2 ff67f7fc 4630b910 e8d2f7f6
    77b5b484 68296823 3204689a 0382eb03 f8439a01
    77b5b494 e0061022 90016808 f7f64620 9b01e97e
    77b5b4a4 b0036003 b5f8bdf0 46041e0d f7fcdb2a
    77b5b4b4 4285fcea bdf8db00 681a6823 d91b2a01
    77b5b4c4 4620689a 32046859 0782eb03 e910f7f6
    77b5b4d4 463a6823 310468d9 0181eb03 68984606

  • I just realized as well that when i refill the table a second time from whatever I just updated I could be attaching that gesture a second time as well. I didnt think about that as a problem because I usually drop the table model and replace it inside of the tableview. I am testing that theory now.

  • Yes the above solved my problem. So if you try to set the same gesture on the same widget more than once.. Kaboom. So I guess my next question would be. How would you disconnect a gesture from a widget

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Are you thinking about ungrabGesture ?

  • Yes, Thanks that was what i needed.

  • Lifetime Qt Champion

    You're welcome !

    But there's still something strange, grabeGesture calls ungrabGesture so I wonder what is happening to your application

  • Really, I didnt know that. I did not implement the ungrabGesture I just wanted it for future reference. I ended up just calling grabGesture once and then refilling the grid without doing it again. So I could try ungrabGesture to see if it still gives me issues. Are you able to see where the error occured based on the backtrace above?

  • Lifetime Qt Champion

    If you can create a minimal example that shows the crash, that would be interesting to find why it does so

Log in to reply