[metacity] compositor: add meta_compositor_damage_screen
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] compositor: add meta_compositor_damage_screen
- Date: Fri, 13 Sep 2019 22:43:39 +0000 (UTC)
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]