Fix mouse pointer handling on multiple screens
The fix in 786b589d95
for the
"Cannot click buttons more than once without moving the mouse cursor"
did not correctly handle setups with multiple screens in one display.
We need to handle the case where the first XQueryPointer returns
a different root window than the default one.
This fixes bug 597386 (agaion)
This commit is contained in:
parent
3ea51bfec0
commit
48fc0f36c2
@ -3256,7 +3256,7 @@ _gdk_windowing_window_at_pointer (GdkDisplay *display,
|
||||
xwindow_last = xwindow;
|
||||
XQueryPointer (xdisplay, xwindow,
|
||||
&root, &xwindow, &rootx, &rooty, &winx, &winy, &xmask);
|
||||
if (get_toplevel &&
|
||||
if (get_toplevel && xwindow_last != root &&
|
||||
(window = gdk_window_lookup_for_display (display, xwindow_last)) != NULL &&
|
||||
GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
|
||||
{
|
||||
@ -3326,7 +3326,7 @@ _gdk_windowing_window_at_pointer (GdkDisplay *display,
|
||||
gdk_flush ();
|
||||
if (gdk_error_trap_pop ())
|
||||
break;
|
||||
if (get_toplevel &&
|
||||
if (get_toplevel && xwindow_last != root &&
|
||||
(window = gdk_window_lookup_for_display (display, xwindow_last)) != NULL &&
|
||||
GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user