[mutter/wayland] Assume the compositor always exists
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] Assume the compositor always exists
- Date: Tue, 18 Mar 2014 22:26:13 +0000 (UTC)
commit 8b2b65246a8673567d2b7f07896194def990f064
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Tue Mar 18 17:06:42 2014 -0400
Assume the compositor always exists
At one point, it was supported to run mutter without a compositor,
but we don't allow that any longer. A lot of code already assumes
display->compositor exists and doesn't check for a NULL pointer,
so just kill the rest of the checks.
src/core/bell.c | 94 +----------------------
src/core/display.c | 4 +-
src/core/screen.c | 14 +--
src/core/stack-tracker.c | 7 +-
src/core/window.c | 188 +++++++++++++++++----------------------------
src/x11/window-x11.c | 14 +--
6 files changed, 88 insertions(+), 233 deletions(-)
---
diff --git a/src/core/bell.c b/src/core/bell.c
index cc25a27..5479142 100644
--- a/src/core/bell.c
+++ b/src/core/bell.c
@@ -59,88 +59,6 @@
#endif
/**
- * bell_flash_screen:
- * @display: The display which owns the screen (rather redundant)
- * @screen: The screen to flash
- *
- * Flashes one entire screen. This is done by making a window the size of the
- * whole screen (or reusing the old one, if it's still around), mapping it,
- * painting it white and then black, and then unmapping it. We set saveunder so
- * that all the windows behind it come back immediately.
- *
- * Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather,
- * we do them in one go, because we don't have to rely on the theme code
- * redrawing the frame for us in order to do the flash.
- */
-/*
- * Bug: The way I read it, this appears not to do the flash
- * the first time we flash a particular display. Am I wrong?
- *
- * Bug: This appears to destroy our current XSync status.
- */
-static void
-bell_flash_screen (MetaDisplay *display,
- MetaScreen *screen)
-{
- Window root = screen->xroot;
- int width = screen->rect.width;
- int height = screen->rect.height;
-
- if (screen->flash_window == None)
- {
- Visual *visual = (Visual *)CopyFromParent;
- XSetWindowAttributes xswa;
- int depth = CopyFromParent;
- xswa.save_under = True;
- xswa.override_redirect = True;
- /*
- * TODO: use XGetVisualInfo and determine which is an
- * overlay, if one is present, and use the Overlay visual
- * for this window (for performance reasons).
- * Not sure how to tell this yet...
- */
- screen->flash_window = XCreateWindow (display->xdisplay, root,
- 0, 0, width, height,
- 0, depth,
- InputOutput,
- visual,
- /* note: XSun doesn't like SaveUnder here */
- CWSaveUnder | CWOverrideRedirect,
- &xswa);
- XSelectInput (display->xdisplay, screen->flash_window, ExposureMask);
- XMapWindow (display->xdisplay, screen->flash_window);
- XSync (display->xdisplay, False);
- XFlush (display->xdisplay);
- XUnmapWindow (display->xdisplay, screen->flash_window);
- }
- else
- {
- /* just draw something in the window */
- GC gc = XCreateGC (display->xdisplay, screen->flash_window, 0, NULL);
- XMapWindow (display->xdisplay, screen->flash_window);
- XSetForeground (display->xdisplay, gc,
- WhitePixel (display->xdisplay,
- XScreenNumberOfScreen (screen->xscreen)));
- XFillRectangle (display->xdisplay, screen->flash_window, gc,
- 0, 0, width, height);
- XSetForeground (display->xdisplay, gc,
- BlackPixel (display->xdisplay,
- XScreenNumberOfScreen (screen->xscreen)));
- XFillRectangle (display->xdisplay, screen->flash_window, gc,
- 0, 0, width, height);
- XFlush (display->xdisplay);
- XSync (display->xdisplay, False);
- XUnmapWindow (display->xdisplay, screen->flash_window);
- XFreeGC (display->xdisplay, gc);
- }
-
- if (meta_prefs_get_focus_mode () != G_DESKTOP_FOCUS_MODE_CLICK &&
- !display->mouse_mode)
- meta_display_increment_focus_sentinel (display);
- XFlush (display->xdisplay);
-}
-
-/**
* bell_flash_fullscreen:
* @display: The display the event came in on
* @xkb_ev: The bell event
@@ -164,12 +82,7 @@ bell_flash_fullscreen (MetaDisplay *display,
{
screen = meta_display_screen_for_xwindow (display, xkb_bell_ev->window);
if (screen)
- {
- if (display->compositor)
- meta_compositor_flash_screen (display->compositor, screen);
- else
- bell_flash_screen (display, screen);
- }
+ meta_compositor_flash_screen (display->compositor, screen);
}
else
{
@@ -177,10 +90,7 @@ bell_flash_fullscreen (MetaDisplay *display,
while (screen_list)
{
screen = (MetaScreen *) screen_list->data;
- if (display->compositor)
- meta_compositor_flash_screen (display->compositor, screen);
- else
- bell_flash_screen (display, screen);
+ meta_compositor_flash_screen (display->compositor, screen);
screen_list = screen_list->next;
}
}
diff --git a/src/core/display.c b/src/core/display.c
index 08df051..f4c5946 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -2621,7 +2621,7 @@ handle_other_xevent (MetaDisplay *display,
/* NB: override redirect windows wont cause a map request so we
* watch out for map notifies against any root windows too if a
* compositor is enabled: */
- if (display->compositor && window == NULL
+ if (window == NULL
&& meta_display_screen_for_root (display, event->xmap.event))
{
window = meta_window_x11_new (display, event->xmap.window,
@@ -3085,7 +3085,7 @@ meta_display_handle_xevent (MetaDisplay *display,
}
out:
- if (display->compositor && !bypass_compositor)
+ if (!bypass_compositor)
{
MetaWindow *window = modified != None ? meta_display_lookup_x_window (display, modified) : NULL;
diff --git a/src/core/screen.c b/src/core/screen.c
index f1700c5..512a722 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -809,11 +809,8 @@ meta_screen_free (MetaScreen *screen,
meta_display_grab (display);
- if (screen->display->compositor)
- {
- meta_compositor_unmanage_screen (screen->display->compositor,
- screen);
- }
+ meta_compositor_unmanage_screen (screen->display->compositor,
+ screen);
meta_display_unmanage_windows_for_screen (display, screen, timestamp);
@@ -2523,10 +2520,9 @@ on_monitors_changed (MetaMonitorManager *manager,
&changes);
}
- if (screen->display->compositor)
- meta_compositor_sync_screen_size (screen->display->compositor,
- screen,
- screen->rect.width, screen->rect.height);
+ meta_compositor_sync_screen_size (screen->display->compositor,
+ screen,
+ screen->rect.width, screen->rect.height);
/* Queue a resize on all the windows */
meta_screen_foreach_window (screen, meta_screen_resize_func, 0);
diff --git a/src/core/stack-tracker.c b/src/core/stack-tracker.c
index a323a04..e87c13f 100644
--- a/src/core/stack-tracker.c
+++ b/src/core/stack-tracker.c
@@ -1245,10 +1245,9 @@ meta_stack_tracker_sync_stack (MetaStackTracker *tracker)
meta_windows = g_list_prepend (meta_windows, window->wayland.meta_window);
}
- if (tracker->screen->display->compositor)
- meta_compositor_sync_stack (tracker->screen->display->compositor,
- tracker->screen,
- meta_windows);
+ meta_compositor_sync_stack (tracker->screen->display->compositor,
+ tracker->screen,
+ meta_windows);
g_list_free (meta_windows);
meta_screen_restacked (tracker->screen);
diff --git a/src/core/window.c b/src/core/window.c
index 9aff235..38aaf11 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1221,8 +1221,7 @@ _meta_window_shared_new (MetaDisplay *display,
set_net_wm_state (window);
}
- if (screen->display->compositor)
- meta_compositor_add_window (screen->display->compositor, window);
+ meta_compositor_add_window (screen->display->compositor, window);
/* Sync stack changes */
meta_stack_thaw (window->screen->stack);
@@ -1505,14 +1504,11 @@ meta_window_unmanage (MetaWindow *window,
0);
}
- if (window->display->compositor)
- {
- if (window->visible_to_compositor)
- meta_compositor_hide_window (window->display->compositor, window,
- META_COMP_EFFECT_DESTROY);
+ if (window->visible_to_compositor)
+ meta_compositor_hide_window (window->display->compositor, window,
+ META_COMP_EFFECT_DESTROY);
- meta_compositor_remove_window (window->display->compositor, window);
- }
+ meta_compositor_remove_window (window->display->compositor, window);
if (window->display->window_with_menu == window)
{
@@ -2747,27 +2743,24 @@ meta_window_show (MetaWindow *window)
if (!window->visible_to_compositor)
{
+ MetaCompEffect effect = META_COMP_EFFECT_NONE;
+
window->visible_to_compositor = TRUE;
- if (window->display->compositor)
+ switch (window->pending_compositor_effect)
{
- MetaCompEffect effect = META_COMP_EFFECT_NONE;
-
- switch (window->pending_compositor_effect)
- {
- case META_COMP_EFFECT_CREATE:
- case META_COMP_EFFECT_UNMINIMIZE:
- effect = window->pending_compositor_effect;
- break;
- case META_COMP_EFFECT_NONE:
- case META_COMP_EFFECT_DESTROY:
- case META_COMP_EFFECT_MINIMIZE:
- break;
- }
-
- meta_compositor_show_window (window->display->compositor,
- window, effect);
+ case META_COMP_EFFECT_CREATE:
+ case META_COMP_EFFECT_UNMINIMIZE:
+ effect = window->pending_compositor_effect;
+ break;
+ case META_COMP_EFFECT_NONE:
+ case META_COMP_EFFECT_DESTROY:
+ case META_COMP_EFFECT_MINIMIZE:
+ break;
}
+
+ meta_compositor_show_window (window->display->compositor,
+ window, effect);
}
/* We don't want to worry about all cases from inside
@@ -2840,26 +2833,23 @@ meta_window_hide (MetaWindow *window)
if (window->visible_to_compositor)
{
+ MetaCompEffect effect = META_COMP_EFFECT_NONE;
+
window->visible_to_compositor = FALSE;
- if (window->display->compositor)
+ switch (window->pending_compositor_effect)
{
- MetaCompEffect effect = META_COMP_EFFECT_NONE;
-
- switch (window->pending_compositor_effect)
- {
- case META_COMP_EFFECT_CREATE:
- case META_COMP_EFFECT_UNMINIMIZE:
- case META_COMP_EFFECT_NONE:
- break;
- case META_COMP_EFFECT_DESTROY:
- case META_COMP_EFFECT_MINIMIZE:
- effect = window->pending_compositor_effect;
- break;
- }
-
- meta_compositor_hide_window (window->display->compositor, window, effect);
+ case META_COMP_EFFECT_CREATE:
+ case META_COMP_EFFECT_UNMINIMIZE:
+ case META_COMP_EFFECT_NONE:
+ break;
+ case META_COMP_EFFECT_DESTROY:
+ case META_COMP_EFFECT_MINIMIZE:
+ effect = window->pending_compositor_effect;
+ break;
}
+
+ meta_compositor_hide_window (window->display->compositor, window, effect);
}
did_hide = FALSE;
@@ -3125,6 +3115,8 @@ meta_window_maximize (MetaWindow *window,
{
MetaRectangle *saved_rect = NULL;
gboolean maximize_horizontally, maximize_vertically;
+ MetaRectangle old_rect;
+ MetaRectangle new_rect;
g_return_if_fail (!window->override_redirect);
@@ -3174,27 +3166,15 @@ meta_window_maximize (MetaWindow *window,
directions,
saved_rect);
- if (window->display->compositor)
- {
- MetaRectangle old_rect;
- MetaRectangle new_rect;
-
- meta_window_get_frame_rect (window, &old_rect);
+ meta_window_get_frame_rect (window, &old_rect);
- meta_window_move_resize_now (window);
+ meta_window_move_resize_now (window);
- meta_window_get_frame_rect (window, &new_rect);
- meta_compositor_maximize_window (window->display->compositor,
- window,
- &old_rect,
- &new_rect);
- }
- else
- {
- /* move_resize with new maximization constraints
- */
- meta_window_queue(window, META_QUEUE_MOVE_RESIZE);
- }
+ meta_window_get_frame_rect (window, &new_rect);
+ meta_compositor_maximize_window (window->display->compositor,
+ window,
+ &old_rect,
+ &new_rect);
}
}
@@ -3354,6 +3334,8 @@ void
meta_window_tile (MetaWindow *window)
{
MetaMaximizeFlags directions;
+ MetaRectangle old_rect;
+ MetaRectangle new_rect;
/* Don't do anything if no tiling is requested */
if (window->tile_mode == META_TILE_NONE)
@@ -3367,31 +3349,19 @@ meta_window_tile (MetaWindow *window)
meta_window_maximize_internal (window, directions, NULL);
meta_screen_update_tile_preview (window->screen, FALSE);
- if (window->display->compositor)
- {
- MetaRectangle old_rect;
- MetaRectangle new_rect;
-
- meta_window_get_frame_rect (window, &old_rect);
+ meta_window_get_frame_rect (window, &old_rect);
- meta_window_move_resize_now (window);
+ meta_window_move_resize_now (window);
- meta_window_get_frame_rect (window, &new_rect);
- meta_compositor_maximize_window (window->display->compositor,
- window,
- &old_rect,
- &new_rect);
+ meta_window_get_frame_rect (window, &new_rect);
+ meta_compositor_maximize_window (window->display->compositor,
+ window,
+ &old_rect,
+ &new_rect);
- if (window->frame)
- meta_ui_queue_frame_draw (window->screen->ui,
- window->frame->xwindow);
- }
- else
- {
- /* move_resize with new tiling constraints
- */
- meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
- }
+ if (window->frame)
+ meta_ui_queue_frame_draw (window->screen->ui,
+ window->frame->xwindow);
}
static gboolean
@@ -3464,6 +3434,7 @@ meta_window_unmaximize_internal (MetaWindow *window,
int gravity)
{
gboolean unmaximize_horizontally, unmaximize_vertically;
+ MetaRectangle new_rect;
g_return_if_fail (!window->override_redirect);
@@ -3548,34 +3519,19 @@ meta_window_unmaximize_internal (MetaWindow *window,
*/
ensure_size_hints_satisfied (&target_rect, &window->size_hints);
- if (window->display->compositor)
- {
- MetaRectangle new_rect;
-
- meta_window_move_resize_internal (window,
- META_IS_MOVE_ACTION | META_IS_RESIZE_ACTION,
- gravity,
- target_rect.x,
- target_rect.y,
- target_rect.width,
- target_rect.height);
-
- meta_window_get_frame_rect (window, &new_rect);
- meta_compositor_unmaximize_window (window->display->compositor,
- window,
- &old_rect,
- &new_rect);
- }
- else
- {
- meta_window_move_resize_internal (window,
- META_IS_MOVE_ACTION | META_IS_RESIZE_ACTION,
- gravity,
- target_rect.x,
- target_rect.y,
- target_rect.width,
- target_rect.height);
- }
+ meta_window_move_resize_internal (window,
+ META_IS_MOVE_ACTION | META_IS_RESIZE_ACTION,
+ gravity,
+ target_rect.x,
+ target_rect.y,
+ target_rect.width,
+ target_rect.height);
+
+ meta_window_get_frame_rect (window, &new_rect);
+ meta_compositor_unmaximize_window (window->display->compositor,
+ window,
+ &old_rect,
+ &new_rect);
/* Make sure user_rect is current.
*/
@@ -5014,10 +4970,9 @@ meta_window_move_resize_internal (MetaWindow *window,
newx, newy, window->rect.width, window->rect.height,
window->user_rect.x, window->user_rect.y,
window->user_rect.width, window->user_rect.height);
- if (window->display->compositor)
- meta_compositor_sync_window_geometry (window->display->compositor,
- window,
- did_placement);
+ meta_compositor_sync_window_geometry (window->display->compositor,
+ window,
+ did_placement);
}
else
{
@@ -10117,8 +10072,7 @@ meta_window_set_opacity (MetaWindow *window,
{
window->opacity = opacity;
- if (window->display->compositor)
- meta_compositor_window_opacity_changed (window->display->compositor, window);
+ meta_compositor_window_opacity_changed (window->display->compositor, window);
}
static void
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index c8db060..5abc848 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -297,8 +297,7 @@ meta_window_set_opaque_region (MetaWindow *window,
if (region != NULL)
window->opaque_region = cairo_region_reference (region);
- if (window->display->compositor)
- meta_compositor_window_shape_changed (window->display->compositor, window);
+ meta_compositor_window_shape_changed (window->display->compositor, window);
}
void
@@ -383,8 +382,7 @@ meta_window_set_input_region (MetaWindow *window,
if (region != NULL)
window->input_region = cairo_region_reference (region);
- if (window->display->compositor)
- meta_compositor_window_shape_changed (window->display->compositor, window);
+ meta_compositor_window_shape_changed (window->display->compositor, window);
}
#if 0
@@ -490,8 +488,7 @@ meta_window_set_shape_region (MetaWindow *window,
if (region != NULL)
window->shape_region = cairo_region_reference (region);
- if (window->display->compositor)
- meta_compositor_window_shape_changed (window->display->compositor, window);
+ meta_compositor_window_shape_changed (window->display->compositor, window);
}
void
@@ -1348,7 +1345,7 @@ is_our_xwindow (MetaDisplay *display,
if (xwindow == screen->guard_window)
return TRUE;
- if (display->compositor && xwindow == XCompositeGetOverlayWindow (display->xdisplay, screen->xroot))
+ if (xwindow == XCompositeGetOverlayWindow (display->xdisplay, screen->xroot))
return TRUE;
/* Any windows created via meta_create_offscreen_window */
@@ -1687,6 +1684,5 @@ meta_window_x11_configure_notify (MetaWindow *window,
if (!event->override_redirect && !event->send_event)
meta_warning ("Unhandled change of windows override redirect status\n");
- if (window->display->compositor)
- meta_compositor_sync_window_geometry (window->display->compositor, window, FALSE);
+ meta_compositor_sync_window_geometry (window->display->compositor, window, FALSE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]