Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-47088

evdev input doesnt work right with several modifiers

    XMLWordPrintable

Details

    Description

      When using evdevKeyboard, which is mandatory when using eglfs, it seems that modifiers are not handled properly.

      If i press Ctrl-D -> everything is fine
      If I press Shift-D -> everuthing is fine
      If i press Ctrl-Shift-D -> then i only get Ctrl-D in the QKeyEvent.

      I enabled console log output and qt.qpa.input framework logging and here is what i found :

      qt.qpa.input.keymap: Processing key event: keycode= 32, modifiers=05 pressed=0, autorepeat=0 | plain=246, withmod=251, size=612
      qt.qpa.input.keymap: Processing: uni=0064, qt=00000044, qtmod=04000000
      qt.qpa.input.keymap: Processing key event: keycode= 32, modifiers=05 pressed=1, autorepeat=0 | plain=246, withmod=251, size=612
      qt.qpa.input.keymap: Processing: uni=0064, qt=00000044, qtmod=0400000

      For the record, modifiers=05 means Ctrl & shift modifiers, which means that libevdev gets the right input.
      But qtmod=0400000 means only Ctrl Modifier, which is wrong.

      You will find attached a small sample that just prints out the KeySequence to console.

      Attachments

        1. keyboard.tar
          280 kB
          LongChair
        2. qt-003.fix.evdevkeyboard.patch
          12 kB
          LongChair

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              lagocs Laszlo Agocs
              longchair LongChair
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes