Bug 7343

Summary: Ungrab/DISABLEGRAB and ClearGrab/CLOSECLIENT don't work
Product: xorg Reporter: Karl Tomlinson <bugs.freedesktop>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: high Keywords: patch, regression
Version: 7.1 (2006.05)   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
correct case in XkbDDXPrivate none

Description Karl Tomlinson 2006-06-27 17:52:50 UTC
Apparently caused by this change:

http://webcvs.freedesktop.org/xorg/xserver/xorg/hw/xfree86/dixmods/xkbPrivate.c?r1=1.1&r2=1.2

where strcmp is used instead of strcasecmp, but the cases don't match as
indicated in the log messages:

RADEONHandleMessage(0, "KeyEventMessage", "ClsGrb", retmsg)
RADEONHandleMessage(0, "KeyEventMessage", "Ungrab", retmsg)

(AllowDeactivateGrabs and AllowClosedownGrabs are on.)
Comment 1 Karl Tomlinson 2006-06-27 17:55:42 UTC
Created attachment 6061 [details] [review]
correct case in XkbDDXPrivate

Comparing 

http://webcvs.freedesktop.org/xlibs/xkbdesc/compat/xfree86?revision=1.1&view=markup


and

http://gitweb.freedesktop.org/?p=xorg-xserver;a=blob;h=0479bcac3b9e0baf9d07f9c625d500ff314a0ea9;hb=54d9acd5113318274e291abab4554b8e678227df;f=hw/xfree86/dixmods/xkbPrivate.c


it looks like this patch is appropriate.

This fixes Ungrab and ClearGrab, tested with xmag.

I don't use +/-vmode so haven't tested these.
Comment 2 Karl Tomlinson 2006-06-27 18:01:15 UTC
Also, if anyone could tell me if there is a way to tell what process is holding 
an active input grab, that would be very helpful for me trying to work out why 
I need to do an Ungrab occasionally after VT switch.

(The same processes appear to be running after a ClearGrab in this case.)
Comment 3 Daniel Stone 2006-07-04 04:11:37 UTC

*** This bug has been marked as a duplicate of 7097 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.