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...
This commit is contained in:
Jasper St. Pierre 2013-12-06 00:57:11 -05:00
parent 56aae17b46
commit 3e179c07bc
6 changed files with 14 additions and 20 deletions

View File

@ -305,11 +305,9 @@ window_decorated_notify (MetaWindow *mw,
{ {
MetaWindowActor *self = META_WINDOW_ACTOR (data); MetaWindowActor *self = META_WINDOW_ACTOR (data);
MetaWindowActorPrivate *priv = self->priv; MetaWindowActorPrivate *priv = self->priv;
MetaFrame *frame = meta_window_get_frame (mw);
MetaScreen *screen = priv->screen; MetaScreen *screen = priv->screen;
MetaDisplay *display = meta_screen_get_display (screen); MetaDisplay *display = meta_screen_get_display (screen);
Display *xdisplay = meta_display_get_xdisplay (display); Display *xdisplay = meta_display_get_xdisplay (display);
Window new_xwindow;
/* /*
* Basically, we have to reconstruct the the internals of this object * Basically, we have to reconstruct the the internals of this object
@ -317,11 +315,6 @@ window_decorated_notify (MetaWindow *mw,
*/ */
priv->redecorating = TRUE; priv->redecorating = TRUE;
if (frame)
new_xwindow = meta_frame_get_xwindow (frame);
else
new_xwindow = meta_window_get_xwindow (mw);
meta_window_actor_detach (self); meta_window_actor_detach (self);
/* /*
@ -336,7 +329,7 @@ window_decorated_notify (MetaWindow *mw,
priv->damage = None; priv->damage = None;
} }
priv->xwindow = new_xwindow; priv->xwindow = meta_window_get_toplevel_xwindow (priv->window);
/* /*
* Recreate the contents. * Recreate the contents.
@ -1615,16 +1608,10 @@ meta_window_actor_new (MetaWindow *window)
MetaCompScreen *info = meta_screen_get_compositor_data (screen); MetaCompScreen *info = meta_screen_get_compositor_data (screen);
MetaWindowActor *self; MetaWindowActor *self;
MetaWindowActorPrivate *priv; MetaWindowActorPrivate *priv;
MetaFrame *frame;
Window top_window; Window top_window;
ClutterActor *window_group; ClutterActor *window_group;
frame = meta_window_get_frame (window); top_window = meta_window_get_toplevel_xwindow (window);
if (frame)
top_window = meta_frame_get_xwindow (frame);
else
top_window = meta_window_get_xwindow (window);
meta_verbose ("add window: Meta %p, xwin 0x%x\n", window, (guint)top_window); meta_verbose ("add window: Meta %p, xwin 0x%x\n", window, (guint)top_window);
self = g_object_new (META_TYPE_WINDOW_ACTOR, self = g_object_new (META_TYPE_WINDOW_ACTOR,

View File

@ -280,8 +280,7 @@ meta_core_lower_beneath_grab_window (Display *xdisplay,
return; return;
changes.stack_mode = Below; changes.stack_mode = Below;
changes.sibling = grab_window->frame ? grab_window->frame->xwindow changes.sibling = meta_window_get_toplevel_xwindow (grab_window);
: grab_window->xwindow;
meta_stack_tracker_record_lower_below (screen->stack_tracker, meta_stack_tracker_record_lower_below (screen->stack_tracker,
xwindow, xwindow,

View File

@ -4008,7 +4008,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
* key grab on the RootWindow. * key grab on the RootWindow.
*/ */
if (grab_window) 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 else
grab_xwindow = screen->xroot; grab_xwindow = screen->xroot;

View File

@ -1277,7 +1277,7 @@ meta_window_grab_keys (MetaWindow *window)
} }
meta_window_change_keygrabs (window, meta_window_change_keygrabs (window,
window->frame ? window->frame->xwindow : window->xwindow, meta_window_get_toplevel_xwindow (window),
TRUE); TRUE);
window->keys_grabbed = TRUE; window->keys_grabbed = TRUE;
@ -1580,7 +1580,7 @@ meta_window_grab_all_keys (MetaWindow *window,
window->desc); window->desc);
meta_window_focus (window, timestamp); 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, meta_topic (META_DEBUG_KEYBINDINGS,
"Grabbing all keys on window %s\n", window->desc); "Grabbing all keys on window %s\n", window->desc);

View File

@ -696,4 +696,6 @@ void meta_window_set_shape_region (MetaWindow *window,
cairo_region_t *region); cairo_region_t *region);
void meta_window_update_shape_region_x11 (MetaWindow *window); void meta_window_update_shape_region_x11 (MetaWindow *window);
Window meta_window_get_toplevel_xwindow (MetaWindow *window);
#endif #endif

View File

@ -11438,3 +11438,9 @@ meta_window_can_close (MetaWindow *window)
{ {
return window->has_close_func; return window->has_close_func;
} }
Window
meta_window_get_toplevel_xwindow (MetaWindow *window)
{
return window->frame ? window->frame->xwindow : window->xwindow;
}