mirror of
https://github.com/brl/mutter.git
synced 2024-11-10 07:56:14 -05:00
events: Remove our workarounds for broken libXi versions
We now depend on a recent enough libXi that fixes broken locking in XIGrabTouchBegin, so we don't need to carry this around anymore.
This commit is contained in:
parent
be85ead2f8
commit
35dd1e644d
@ -678,8 +678,7 @@ meta_spew_event (MetaDisplay *display,
|
|||||||
static void
|
static void
|
||||||
handle_window_focus_event (MetaDisplay *display,
|
handle_window_focus_event (MetaDisplay *display,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
XIEnterEvent *event,
|
XIEnterEvent *event)
|
||||||
unsigned long serial)
|
|
||||||
{
|
{
|
||||||
MetaWindow *focus_window;
|
MetaWindow *focus_window;
|
||||||
#ifdef WITH_VERBOSE_MODE
|
#ifdef WITH_VERBOSE_MODE
|
||||||
@ -758,7 +757,7 @@ handle_window_focus_event (MetaDisplay *display,
|
|||||||
if (event->evtype == XI_FocusIn)
|
if (event->evtype == XI_FocusIn)
|
||||||
{
|
{
|
||||||
display->server_focus_window = event->event;
|
display->server_focus_window = event->event;
|
||||||
display->server_focus_serial = serial;
|
display->server_focus_serial = event->serial;
|
||||||
focus_window = window;
|
focus_window = window;
|
||||||
}
|
}
|
||||||
else if (event->evtype == XI_FocusOut)
|
else if (event->evtype == XI_FocusOut)
|
||||||
@ -772,7 +771,7 @@ handle_window_focus_event (MetaDisplay *display,
|
|||||||
}
|
}
|
||||||
|
|
||||||
display->server_focus_window = None;
|
display->server_focus_window = None;
|
||||||
display->server_focus_serial = serial;
|
display->server_focus_serial = event->serial;
|
||||||
focus_window = NULL;
|
focus_window = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -813,8 +812,7 @@ crossing_serial_is_ignored (MetaDisplay *display,
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
handle_input_xevent (MetaDisplay *display,
|
handle_input_xevent (MetaDisplay *display,
|
||||||
XIEvent *input_event,
|
XIEvent *input_event)
|
||||||
gulong serial)
|
|
||||||
{
|
{
|
||||||
XIEnterEvent *enter_event = (XIEnterEvent *) input_event;
|
XIEnterEvent *enter_event = (XIEnterEvent *) input_event;
|
||||||
Window modified;
|
Window modified;
|
||||||
@ -851,7 +849,7 @@ handle_input_xevent (MetaDisplay *display,
|
|||||||
/* Check if we've entered a window; do this even if window->has_focus to
|
/* Check if we've entered a window; do this even if window->has_focus to
|
||||||
* avoid races.
|
* avoid races.
|
||||||
*/
|
*/
|
||||||
if (window && !crossing_serial_is_ignored (display, serial) &&
|
if (window && !crossing_serial_is_ignored (display, input_event->serial) &&
|
||||||
enter_event->mode != XINotifyGrab &&
|
enter_event->mode != XINotifyGrab &&
|
||||||
enter_event->mode != XINotifyUngrab &&
|
enter_event->mode != XINotifyUngrab &&
|
||||||
enter_event->detail != XINotifyInferior &&
|
enter_event->detail != XINotifyInferior &&
|
||||||
@ -876,7 +874,7 @@ handle_input_xevent (MetaDisplay *display,
|
|||||||
break;
|
break;
|
||||||
case XI_FocusIn:
|
case XI_FocusIn:
|
||||||
case XI_FocusOut:
|
case XI_FocusOut:
|
||||||
handle_window_focus_event (display, window, enter_event, serial);
|
handle_window_focus_event (display, window, enter_event);
|
||||||
if (!window)
|
if (!window)
|
||||||
{
|
{
|
||||||
/* Check if the window is a root window. */
|
/* Check if the window is a root window. */
|
||||||
@ -1726,11 +1724,7 @@ meta_display_handle_xevent (MetaDisplay *display,
|
|||||||
}
|
}
|
||||||
#endif /* HAVE_XI23 */
|
#endif /* HAVE_XI23 */
|
||||||
|
|
||||||
/* libXi does not properly copy the serial to XI2 events, so pull it
|
if (handle_input_xevent (display, input_event))
|
||||||
* from the parent XAnyEvent and pass it to handle_input_xevent.
|
|
||||||
* See: https://bugs.freedesktop.org/show_bug.cgi?id=64687
|
|
||||||
*/
|
|
||||||
if (handle_input_xevent (display, input_event, event->xany.serial))
|
|
||||||
{
|
{
|
||||||
bypass_gtk = bypass_compositor = TRUE;
|
bypass_gtk = bypass_compositor = TRUE;
|
||||||
goto out;
|
goto out;
|
||||||
|
Loading…
Reference in New Issue
Block a user