[mutter/wip/surface-content: 17/20] window: Add a simple meta_window_get_toplevel_xwindow utility
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/surface-content: 17/20] window: Add a simple meta_window_get_toplevel_xwindow utility
- Date: Sat, 7 Dec 2013 02:27:06 +0000 (UTC)
commit bb0dc968f7d70ff8cea2c6ad9e0b78c2535dbfae
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Dec 6 00:57:11 2013 -0500
window: Add a simple meta_window_get_toplevel_xwindow utility
To replace all the places where we do:
window->frame ? window->frame->xwindow : window->xwindow
or similar...
src/compositor/meta-window-actor.c | 19 +++----------------
src/core/core.c | 3 +--
src/core/display.c | 2 +-
src/core/keybindings.c | 4 ++--
src/core/window-private.h | 1 +
src/core/window.c | 6 ++++++
6 files changed, 14 insertions(+), 21 deletions(-)
---
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 38d1d75..a6aeeb4 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -285,11 +285,9 @@ window_decorated_notify (MetaWindow *mw,
{
MetaWindowActor *self = META_WINDOW_ACTOR (data);
MetaWindowActorPrivate *priv = self->priv;
- MetaFrame *frame = meta_window_get_frame (mw);
MetaScreen *screen = priv->screen;
MetaDisplay *display = meta_screen_get_display (screen);
Display *xdisplay = meta_display_get_xdisplay (display);
- Window new_xwindow;
/*
* Basically, we have to reconstruct the the internals of this object
@@ -297,11 +295,6 @@ window_decorated_notify (MetaWindow *mw,
*/
priv->redecorating = TRUE;
- if (frame)
- new_xwindow = meta_frame_get_xwindow (frame);
- else
- new_xwindow = meta_window_get_xwindow (mw);
-
if (!meta_is_wayland_compositor ())
{
meta_window_actor_detach_x11_pixmap (self);
@@ -319,7 +312,7 @@ window_decorated_notify (MetaWindow *mw,
}
}
- priv->xwindow = new_xwindow;
+ priv->xwindow = meta_window_get_toplevel_xwindow (priv->window);
/*
* Recreate the contents.
@@ -1590,18 +1583,12 @@ meta_window_actor_new (MetaWindow *window)
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
MetaWindowActor *self;
MetaWindowActorPrivate *priv;
- MetaFrame *frame;
- Window top_window = None;
+ Window top_window;
ClutterActor *window_group;
if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
{
- frame = meta_window_get_frame (window);
- if (frame)
- top_window = meta_frame_get_xwindow (frame);
- else
- top_window = meta_window_get_xwindow (window);
-
+ top_window = meta_window_get_toplevel_xwindow (window);
meta_verbose ("add window: Meta %p, xwin 0x%x\n", window, (guint)top_window);
}
else
diff --git a/src/core/core.c b/src/core/core.c
index b1ba70d..6840ece 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -283,8 +283,7 @@ meta_core_lower_beneath_grab_window (Display *xdisplay,
return;
changes.stack_mode = Below;
- changes.sibling = grab_window->frame ? grab_window->frame->xwindow
- : grab_window->xwindow;
+ changes.sibling = meta_window_get_toplevel_xwindow (grab_window);
stack_window.any.type = META_WINDOW_CLIENT_TYPE_X11;
stack_window.x11.xwindow = xwindow;
diff --git a/src/core/display.c b/src/core/display.c
index b0874af..0f20d14 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -4204,7 +4204,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
* key grab on the RootWindow.
*/
if (grab_window)
- grab_xwindow = grab_window->frame ? grab_window->frame->xwindow : grab_window->xwindow;
+ grab_xwindow = meta_window_get_toplevel_xwindow (grab_window);
else
grab_xwindow = screen->xroot;
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index e699108..aa137d2 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -1277,7 +1277,7 @@ meta_window_grab_keys (MetaWindow *window)
}
meta_window_change_keygrabs (window,
- window->frame ? window->frame->xwindow : window->xwindow,
+ meta_window_get_toplevel_xwindow (window),
TRUE);
window->keys_grabbed = TRUE;
@@ -1584,7 +1584,7 @@ meta_window_grab_all_keys (MetaWindow *window,
window->desc);
meta_window_focus (window, timestamp);
- grabwindow = window->frame ? window->frame->xwindow : window->xwindow;
+ grabwindow = meta_window_get_toplevel_xwindow (window);
meta_topic (META_DEBUG_KEYBINDINGS,
"Grabbing all keys on window %s\n", window->desc);
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 6740a1d..0e0631a 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -760,5 +760,6 @@ void meta_window_ping (MetaWindow *window,
void *user_data);
void meta_window_pong (MetaWindow *window,
guint32 timestamp);
+Window meta_window_get_toplevel_xwindow (MetaWindow *window);
#endif
diff --git a/src/core/window.c b/src/core/window.c
index 90814fc..c352561 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -12379,3 +12379,9 @@ meta_window_ping (MetaWindow *window,
else
meta_wayland_surface_ping (window->surface, timestamp);
}
+
+Window
+meta_window_get_toplevel_xwindow (MetaWindow *window)
+{
+ return window->frame ? window->frame->xwindow : window->xwindow;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]