[Bug 48965] Rift: key combination with ALT not working

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jan 25 15:46:25 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=48965

Zebediah Figura <z.figura12 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |UNCONFIRMED
     Ever confirmed|1                           |0

--- Comment #17 from Zebediah Figura <z.figura12 at gmail.com> ---
I'm inclined to call this a compiz bug. See, here's the thing:

> 01e4:trace:event:call_event_handler 479 FocusOut for hwnd/window 0x200c8/8800005
> 01e4:trace:event:X11DRV_FocusOut win 0x200c8 xwin 8800005 detail=NotifyAncestor mode=NotifyGrab
> 01e4:trace:event:call_event_handler 479 FocusIn for hwnd/window 0x200c8/8800005
> 01e4:trace:event:X11DRV_FocusIn win 0x200c8 xwin 8800005 detail=NotifyAncestor mode=NotifyUngrab

Someone randomly grabs the keyboard, apparently, causing our window to focus
out and back in again. Okay, fine, whatever, they're within rights to do that I
guess...

> 01e4:trace:event:call_event_handler 479 KeymapNotify for hwnd/window (nil)/0
> 01e4:trace:keyboard:X11DRV_KeymapNotify Adjusting state for vkey 0xa4. State before 00
> 01e4:trace:event:process_events processed 4 events, returning 1

The FocusIn is followed by a KeymapNotify, which is correct. Problem is, that
notify already has the alt key pressed.

> 01e4:trace:event:call_event_handler 479 KeyPress for hwnd/window 0x200c8/8800005
> 01e4:trace:key:X11DRV_KeyEvent type 2, window 8800005, state 0x0000, keycode 64
> 01e4:trace:key:X11DRV_KeyEvent XmbLookupString needs 0 byte(s)
> 01e4:trace:key:X11DRV_KeyEvent nbyte = 0, status 3
> 01e4:trace:key:X11DRV_KeyEvent KeyPress : keysym=ffe9 (Alt_L), # of chars=0 / ""
> 01e4:trace:key:EVENT_event_to_vkey e->keycode = 64
> 01e4:trace:key:X11DRV_KeyEvent keycode 64 converted to vkey 0xA4 scan 38
> 01e4:trace:key:X11DRV_send_keyboard_input hwnd 0x200c8 vkey=00a4 scan=0038 flags=0000
> 01e4:trace:event:process_events processed 2 events, returning 1
> 01e4:trace:msg:peek_message got type 7 msg 104 (WM_SYSKEYDOWN) hwnd 00000000000200C8 wp a4 lp 60380001

Then we get a KeyPress of the left alt key. Trouble is, we report to Rift that
the key was already held down, and it seems to ignore key presses in that case.

This isn't actually invalid according to the X11 spec (at least, I think), and
it can happen in practice due to auto-repeat. But it confuses the application,
and I don't think compiz should be doing this.

I'll try to set up a VM to reproduce, and possibly create a minimal test case,
and then report the bug to compiz.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list