[metacity] compositor: pass MetaSurface to sync_window_geometry vfunc



commit 675210be78939ab2821366a75380010b7afcb85b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Fri Oct 4 17:07:21 2019 +0300

    compositor: pass MetaSurface to sync_window_geometry vfunc

 src/compositor/meta-compositor-none.c    | 2 +-
 src/compositor/meta-compositor-private.h | 2 +-
 src/compositor/meta-compositor-vulkan.c  | 2 +-
 src/compositor/meta-compositor-xrender.c | 8 ++++----
 src/compositor/meta-compositor.c         | 9 ++++++++-
 5 files changed, 15 insertions(+), 8 deletions(-)
---
diff --git a/src/compositor/meta-compositor-none.c b/src/compositor/meta-compositor-none.c
index 954423c8..106b0a59 100644
--- a/src/compositor/meta-compositor-none.c
+++ b/src/compositor/meta-compositor-none.c
@@ -118,7 +118,7 @@ meta_compositor_none_sync_screen_size (MetaCompositor *compositor)
 
 static void
 meta_compositor_none_sync_window_geometry (MetaCompositor *compositor,
-                                           MetaWindow     *window)
+                                           MetaSurface    *surface)
 {
 }
 
diff --git a/src/compositor/meta-compositor-private.h b/src/compositor/meta-compositor-private.h
index 0a839442..64b479f9 100644
--- a/src/compositor/meta-compositor-private.h
+++ b/src/compositor/meta-compositor-private.h
@@ -75,7 +75,7 @@ struct _MetaCompositorClass
   void              (* sync_screen_size)             (MetaCompositor     *compositor);
 
   void              (* sync_window_geometry)         (MetaCompositor     *compositor,
-                                                      MetaWindow         *window);
+                                                      MetaSurface        *surface);
 
   void              (* pre_paint)                    (MetaCompositor     *compositor);
 
diff --git a/src/compositor/meta-compositor-vulkan.c b/src/compositor/meta-compositor-vulkan.c
index b5491985..970034aa 100644
--- a/src/compositor/meta-compositor-vulkan.c
+++ b/src/compositor/meta-compositor-vulkan.c
@@ -1353,7 +1353,7 @@ meta_compositor_vulkan_sync_screen_size (MetaCompositor *compositor)
 
 static void
 meta_compositor_vulkan_sync_window_geometry (MetaCompositor *compositor,
-                                             MetaWindow     *window)
+                                             MetaSurface    *surface)
 {
 }
 
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c
index f0a43582..9edf15ba 100644
--- a/src/compositor/meta-compositor-xrender.c
+++ b/src/compositor/meta-compositor-xrender.c
@@ -2764,18 +2764,18 @@ meta_compositor_xrender_sync_screen_size (MetaCompositor *compositor)
 
 static void
 meta_compositor_xrender_sync_window_geometry (MetaCompositor *compositor,
-                                              MetaWindow     *window)
+                                              MetaSurface    *surface)
 {
   MetaCompositorXRender *xrender;
   MetaCompWindow *cw;
+  MetaWindow *window;
   MetaRectangle old_rect;
   XserverRegion damage;
 
   xrender = META_COMPOSITOR_XRENDER (compositor);
-  cw = find_comp_window_by_window (xrender, window);
 
-  if (cw == NULL)
-    return;
+  cw = g_object_get_data (G_OBJECT (surface), "cw");
+  window = cw->window;
 
   cw->needs_shadow = window_has_shadow (xrender, cw);
 
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index 1e0aa643..12d2380b 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -567,11 +567,18 @@ void
 meta_compositor_sync_window_geometry (MetaCompositor *compositor,
                                       MetaWindow     *window)
 {
+  MetaCompositorPrivate *priv;
   MetaCompositorClass *compositor_class;
+  MetaSurface *surface;
 
+  priv = meta_compositor_get_instance_private (compositor);
   compositor_class = META_COMPOSITOR_GET_CLASS (compositor);
 
-  compositor_class->sync_window_geometry (compositor, window);
+  surface = g_hash_table_lookup (priv->surfaces, window);
+  if (surface == NULL)
+    return;
+
+  compositor_class->sync_window_geometry (compositor, surface);
 }
 
 gboolean


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