mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
display: Fix logic for determining whether our focus was successful
In some cases, we can focus the frame window instead of the client window, so make sure that our checks include that as well. https://bugzilla.gnome.org/show_bug.cgi?id=715030
This commit is contained in:
parent
b8938e9d4d
commit
f0bc53ce5a
@ -2127,6 +2127,19 @@ handle_window_focus_event (MetaDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
window_has_xwindow (MetaWindow *window,
|
||||
Window xwindow)
|
||||
{
|
||||
if (window->xwindow == xwindow)
|
||||
return TRUE;
|
||||
|
||||
if (window->frame && window->frame->xwindow == xwindow)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* event_callback:
|
||||
* @event: The event that just happened
|
||||
@ -2182,7 +2195,7 @@ event_callback (XEvent *event,
|
||||
|
||||
if (event->xany.serial > display->focus_serial &&
|
||||
display->focus_window &&
|
||||
display->focus_window->xwindow != display->server_focus_window)
|
||||
!window_has_xwindow (display->focus_window, display->server_focus_window))
|
||||
{
|
||||
meta_topic (META_DEBUG_FOCUS, "Earlier attempt to focus %s failed\n",
|
||||
display->focus_window->desc);
|
||||
|
Loading…
Reference in New Issue
Block a user