[mutter/wip/culling: 1/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: 1/8] display: Fix logic for determining whether our focus was successful
- Date: Mon, 25 Nov 2013 20:11:18 +0000 (UTC)
commit f0bc53ce5a6cc5b2998c5cf316c57060cd882474
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]