[metacity] compositor: add meta_compositor_damage_screen



commit 85f39ea69f75c1af6e628a2fa4eac7ec72878f03
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Sep 13 21:40:22 2019 +0300

    compositor: add meta_compositor_damage_screen

 src/compositor/meta-compositor-private.h |  2 ++
 src/compositor/meta-compositor-xrender.c | 33 ++++----------------------------
 src/compositor/meta-compositor.c         | 23 ++++++++++++++++++++++
 3 files changed, 29 insertions(+), 29 deletions(-)
---
diff --git a/src/compositor/meta-compositor-private.h b/src/compositor/meta-compositor-private.h
index 89a1c3c0..0582f057 100644
--- a/src/compositor/meta-compositor-private.h
+++ b/src/compositor/meta-compositor-private.h
@@ -104,6 +104,8 @@ void         meta_compositor_add_damage              (MetaCompositor  *composito
                                                       const gchar     *name,
                                                       XserverRegion    damage);
 
+void         meta_compositor_damage_screen           (MetaCompositor  *compositor);
+
 void         meta_compositor_queue_redraw            (MetaCompositor  *compositor);
 
 G_END_DECLS
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c
index 69b0cb0a..fde92ef4 100644
--- a/src/compositor/meta-compositor-xrender.c
+++ b/src/compositor/meta-compositor-xrender.c
@@ -1702,28 +1702,6 @@ add_repair (MetaCompositorXRender *xrender)
   meta_compositor_queue_redraw (META_COMPOSITOR (xrender));
 }
 
-static void
-damage_screen (MetaCompositorXRender *xrender)
-{
-  MetaCompositor *compositor = META_COMPOSITOR (xrender);
-  MetaDisplay *display = meta_compositor_get_display (compositor);
-  Display *xdisplay = meta_display_get_xdisplay (display);
-  XserverRegion region;
-  int width, height;
-  XRectangle r;
-
-  r.x = 0;
-  r.y = 0;
-  meta_screen_get_size (xrender->screen, &width, &height);
-  r.width = width;
-  r.height = height;
-
-  region = XFixesCreateRegion (xdisplay, &r, 1);
-
-  meta_compositor_add_damage (compositor, "damage_screen", region);
-  XFixesDestroyRegion (xdisplay, region);
-}
-
 static void
 repair_win (MetaCompositorXRender *xrender,
             MetaCompWindow        *cw)
@@ -2178,9 +2156,7 @@ process_property_notify (MetaCompositorXRender *xrender,
           /* Damage the whole screen as we may need to redraw the
            * background ourselves
            */
-          damage_screen (xrender);
-
-          add_repair (xrender);
+          meta_compositor_damage_screen (compositor);
           return;
         }
     }
@@ -2424,7 +2400,7 @@ meta_compositor_xrender_manage (MetaCompositor  *compositor,
 
   XClearArea (xdisplay, xrender->overlay_window, 0, 0, 0, 0, TRUE);
 
-  damage_screen (xrender);
+  meta_compositor_damage_screen (compositor);
 
   meta_prefs_add_listener (update_shadows, xrender);
   xrender->prefs_listener_added = TRUE;
@@ -2874,7 +2850,7 @@ meta_compositor_xrender_sync_screen_size (MetaCompositor *compositor)
       xrender->root_buffer = None;
     }
 
-  damage_screen (xrender);
+  meta_compositor_damage_screen (compositor);
 }
 
 static void
@@ -2906,8 +2882,7 @@ meta_compositor_xrender_sync_stack (MetaCompositor *compositor,
 
   xrender->windows = g_list_reverse (xrender->windows);
 
-  damage_screen (xrender);
-  add_repair (xrender);
+  meta_compositor_damage_screen (compositor);
 }
 
 static void
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index 9948f130..a3d047f6 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -741,6 +741,29 @@ meta_compositor_add_damage (MetaCompositor *compositor,
   meta_compositor_queue_redraw (compositor);
 }
 
+void
+meta_compositor_damage_screen (MetaCompositor *compositor)
+{
+  MetaCompositorPrivate *priv;
+  Display *xdisplay;
+  int screen_width;
+  int screen_height;
+  XserverRegion screen_region;
+
+  priv = meta_compositor_get_instance_private (compositor);
+  xdisplay = priv->display->xdisplay;
+
+  meta_screen_get_size (priv->display->screen, &screen_width, &screen_height);
+
+  screen_region = XFixesCreateRegion (xdisplay, &(XRectangle) {
+                                        .width = screen_width,
+                                        .height = screen_height
+                                      }, 1);
+
+  meta_compositor_add_damage (compositor, "damage_screen", screen_region);
+  XFixesDestroyRegion (xdisplay, screen_region);
+}
+
 void
 meta_compositor_queue_redraw (MetaCompositor *compositor)
 {


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