[metacity] core: simplify code



commit 78ce4c4aa72220627849e3bc5202e4f2736f84b7
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sun Jan 8 19:37:32 2017 +0200

    core: simplify code

 src/core/display.c |   66 ++++++++++++++++++---------------------------------
 src/core/screen.c  |   26 ++++++++------------
 src/core/window.c  |   40 ++++++++++++-------------------
 3 files changed, 49 insertions(+), 83 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 1d96d34..695f6e3 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -244,11 +244,21 @@ sn_error_trap_pop (SnDisplay *sn_display,
 #endif
 
 static void
-enable_compositor (MetaCompositorType  type,
-                   MetaDisplay        *display,
-                   gboolean            composite_windows)
+update_compositor (MetaDisplay *display,
+                   gboolean     composite_windows)
 {
-  g_assert (display->compositor == NULL);
+  MetaCompositorType type;
+
+  if (display->compositor != NULL)
+    {
+      meta_compositor_unmanage_screen (display->compositor, display->screen);
+      meta_compositor_destroy (display->compositor);
+    }
+
+  if (meta_prefs_get_compositing_manager ())
+    type = META_COMPOSITOR_TYPE_XRENDER;
+  else
+    type = META_COMPOSITOR_TYPE_NONE;
 
   display->compositor = meta_compositor_new (type, display);
 
@@ -258,17 +268,6 @@ enable_compositor (MetaCompositorType  type,
     meta_screen_composite_all_windows (display->screen);
 }
 
-static void
-disable_compositor (MetaDisplay *display)
-{
-  g_return_if_fail (display->compositor != NULL);
-
-  meta_compositor_unmanage_screen (display->compositor, display->screen);
-
-  meta_compositor_destroy (display->compositor);
-  display->compositor = NULL;
-}
-
 /**
  * Opens a new display, sets it up, initialises all the X extensions
  * we will need, and adds it to the list of displays.
@@ -660,10 +659,7 @@ meta_display_open (void)
   /* We don't composite the windows here because they will be composited
      faster with the call to meta_screen_manage_all_windows further down
      the code */
-  if (meta_prefs_get_compositing_manager ())
-    enable_compositor (META_COMPOSITOR_TYPE_XRENDER, the_display, FALSE);
-  else
-    enable_compositor (META_COMPOSITOR_TYPE_NONE, the_display, FALSE);
+  update_compositor (the_display, FALSE);
 
   meta_display_grab (the_display);
 
@@ -847,8 +843,7 @@ meta_display_close (MetaDisplay *display,
 
   meta_display_shutdown_keys (display);
 
-  if (display->compositor)
-    meta_compositor_destroy (display->compositor);
+  meta_compositor_destroy (display->compositor);
 
   g_free (display);
   the_display = NULL;
@@ -2443,12 +2438,7 @@ event_callback (XEvent   *event,
       break;
     }
 
-  if (display->compositor)
-    {
-      meta_compositor_process_event (display->compositor,
-                                    event,
-                                    window);
-    }
+  meta_compositor_process_event (display->compositor, event, window);
 
   display->current_time = CurrentTime;
   return filter_out_event;
@@ -3302,12 +3292,9 @@ meta_display_begin_grab_op (MetaDisplay *display,
 
   if (grab_op_is_mouse (op) && meta_grab_op_is_moving (op))
     {
-      if (display->compositor)
-       {
-         meta_compositor_begin_move (display->compositor,
-                                     window, &window->rect,
-                                     root_x, root_y);
-       }
+      meta_compositor_begin_move (display->compositor,
+                                  window, &window->rect,
+                                  root_x, root_y);
     }
 
   meta_topic (META_DEBUG_WINDOW_OPS,
@@ -3688,13 +3675,11 @@ meta_display_end_grab_op (MetaDisplay *display,
       meta_window_calc_showing (display->grab_window);
     }
 
-  if (display->compositor &&
-      display->grab_window &&
+  if (display->grab_window &&
       grab_op_is_mouse (display->grab_op) &&
       meta_grab_op_is_moving (display->grab_op))
     {
-      meta_compositor_end_move (display->compositor,
-                               display->grab_window);
+      meta_compositor_end_move (display->compositor, display->grab_window);
     }
 
   if (display->grab_have_pointer)
@@ -5048,12 +5033,7 @@ prefs_changed_callback (MetaPreference pref,
     }
   else if (pref == META_PREF_COMPOSITING_MANAGER)
     {
-      disable_compositor (display);
-
-      if (meta_prefs_get_compositing_manager ())
-        enable_compositor (META_COMPOSITOR_TYPE_XRENDER, display, TRUE);
-      else
-        enable_compositor (META_COMPOSITOR_TYPE_NONE, display, TRUE);
+      update_compositor (display, TRUE);
     }
   else if (pref == META_PREF_ATTACH_MODAL_DIALOGS)
     {
diff --git a/src/core/screen.c b/src/core/screen.c
index ca6a3f2..bd61928 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -635,11 +635,7 @@ 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 (display->compositor, screen);
 
   meta_display_unmanage_windows_for_screen (display, screen, timestamp);
 
@@ -786,9 +782,8 @@ meta_screen_manage_all_windows (MetaScreen *screen)
         continue;
       }
 
-      if (screen->display->compositor)
-        meta_compositor_add_window (screen->display->compositor, window,
-                                    info->xwindow, &info->attrs);
+      meta_compositor_add_window (screen->display->compositor, window,
+                                  info->xwindow, &info->attrs);
     }
   meta_stack_thaw (screen->stack);
 
@@ -805,8 +800,6 @@ meta_screen_composite_all_windows (MetaScreen *screen)
   GList *windows, *list;
 
   display = screen->display;
-  if (!display->compositor)
-    return;
 
   windows = list_windows (screen);
 
@@ -815,6 +808,7 @@ meta_screen_composite_all_windows (MetaScreen *screen)
   for (list = windows; list != NULL; list = list->next)
     {
       WindowInfo *info = list->data;
+      MetaWindow *window;
 
       if (info->xwindow == screen->no_focus_window ||
           info->xwindow == screen->flash_window ||
@@ -824,10 +818,9 @@ meta_screen_composite_all_windows (MetaScreen *screen)
         continue;
       }
 
-      meta_compositor_add_window (display->compositor,
-                                  meta_display_lookup_x_window (display,
-                                                                info->xwindow),
-                                 info->xwindow, &info->attrs);
+      window = meta_display_lookup_x_window (display, info->xwindow);
+      meta_compositor_add_window (display->compositor, window,
+                                  info->xwindow, &info->attrs);
     }
 
   meta_stack_thaw (screen->stack);
@@ -1213,12 +1206,13 @@ get_window_pixbuf (MetaWindow *window,
                    int        *width,
                    int        *height)
 {
+  MetaDisplay *display;
   cairo_surface_t *surface;
   GdkPixbuf *pixbuf, *scaled;
   double ratio;
 
-  surface = meta_compositor_get_window_surface (window->display->compositor,
-                                            window);
+  display = window->display;
+  surface = meta_compositor_get_window_surface (display->compositor, window);
   if (surface == NULL)
     return NULL;
 
diff --git a/src/core/window.c b/src/core/window.c
index 15b36c3..d8f8614 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -939,8 +939,7 @@ meta_window_free (MetaWindow  *window,
 
   meta_verbose ("Unmanaging 0x%lx\n", window->xwindow);
 
-  if (window->display->compositor)
-    meta_compositor_free_window (window->display->compositor, window);
+  meta_compositor_free_window (window->display->compositor, window);
 
   if (window->display->window_with_menu == window)
     {
@@ -3696,16 +3695,14 @@ meta_window_move_resize_internal (MetaWindow          *window,
       meta_error_trap_push (window->display);
 
       if (window->sync_request_counter != None &&
-         window->display->grab_sync_request_alarm != None &&
-         window->sync_request_time.tv_usec == 0 &&
-         window->sync_request_time.tv_sec == 0)
-       {
-         /* turn off updating */
-         if (window->display->compositor)
-           meta_compositor_set_updates (window->display->compositor, window, FALSE);
-
-         send_sync_request (window);
-       }
+          window->display->grab_sync_request_alarm != None &&
+          window->sync_request_time.tv_usec == 0 &&
+          window->sync_request_time.tv_sec == 0)
+        {
+          /* turn off updating */
+          meta_compositor_set_updates (window->display->compositor, window, FALSE);
+          send_sync_request (window);
+        }
 
       XConfigureWindow (window->display->xdisplay,
                         window->xwindow,
@@ -7073,6 +7070,7 @@ update_move (MetaWindow  *window,
   MetaRectangle old;
   int shake_threshold;
   MetaDisplay *display = window->display;
+  int root_x, root_y;
 
   display->grab_latest_motion_x = x;
   display->grab_latest_motion_y = y;
@@ -7287,14 +7285,9 @@ update_move (MetaWindow  *window,
                                         snap,
                                         FALSE);
 
-  if (display->compositor)
-    {
-      int root_x = new_x - display->grab_anchor_window_pos.x + display->grab_anchor_root_x;
-      int root_y = new_y - display->grab_anchor_window_pos.y + display->grab_anchor_root_y;
-
-      meta_compositor_update_move (display->compositor,
-                                  window, root_x, root_y);
-    }
+  root_x = new_x - display->grab_anchor_window_pos.x + display->grab_anchor_root_x;
+  root_y = new_y - display->grab_anchor_window_pos.y + display->grab_anchor_root_y;
+  meta_compositor_update_move (display->compositor, window, root_x, root_y);
 
   if (display->grab_wireframe_active)
     meta_window_update_wireframe (window, new_x, new_y,
@@ -7462,8 +7455,7 @@ update_resize (MetaWindow *window,
     }
 
   /* If we get here, it means the client should have redrawn itself */
-  if (window->display->compositor)
-    meta_compositor_set_updates (window->display->compositor, window, TRUE);
+  meta_compositor_set_updates (window->display->compositor, window, TRUE);
 
   /* Remove any scheduled compensation events */
   if (window->display->grab_resize_timeout_id)
@@ -7741,8 +7733,8 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
                                event->xbutton.x_root,
                                event->xbutton.y_root,
                                TRUE);
-              if (window->display->compositor)
-                meta_compositor_set_updates (window->display->compositor, window, TRUE);
+
+              meta_compositor_set_updates (window->display->compositor, window, TRUE);
 
               /* If a tiled window has been dragged free with a
                * mouse resize without snapping back to the tiled


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]