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:
parent
56aae17b46
commit
3e179c07bc
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user