[mutter/wip/culling: 4/8] display: Fix logic for determining whether our focus was successful
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/culling: 4/8] display: Fix logic for determining whether our focus was successful
- Date: Fri, 22 Nov 2013 20:32:35 +0000 (UTC)
commit 802ce6c4c3ffe1a52ad76b03c468438412a5f9d7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Nov 22 12:45:27 2013 -0500
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
src/core/display.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 33ebc7b..b89f430 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]