[metacity] compositor: add missing vfuncs



commit d259ff5b7ad5dc72cdca2df50c45acc18b4e4076
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sun Jan 8 20:05:15 2017 +0200

    compositor: add missing vfuncs

 src/compositor/compositor-none.c    |   50 ++++++++++---
 src/compositor/compositor-private.h |   14 ++++
 src/compositor/compositor-xrender.c |  137 +++++++++++++++++------------------
 src/compositor/compositor.c         |    6 ++
 4 files changed, 125 insertions(+), 82 deletions(-)
---
diff --git a/src/compositor/compositor-none.c b/src/compositor/compositor-none.c
index 31280ef..56044ae 100644
--- a/src/compositor/compositor-none.c
+++ b/src/compositor/compositor-none.c
@@ -28,6 +28,12 @@ typedef struct
 } MetaCompositorNone;
 
 static void
+meta_compositor_none_destroy (MetaCompositor *compositor)
+{
+  g_free (compositor);
+}
+
+static void
 meta_compositor_none_manage_screen (MetaCompositor *compositor,
                                     MetaScreen     *screen)
 {
@@ -61,18 +67,6 @@ meta_compositor_none_set_updates (MetaCompositor *compositor,
 }
 
 static void
-meta_compositor_none_destroy (MetaCompositor *compositor)
-{
-  g_free (compositor);
-}
-
-static void
-meta_compositor_none_free_window (MetaCompositor *compositor,
-                                  MetaWindow     *window)
-{
-}
-
-static void
 meta_compositor_none_process_event (MetaCompositor *compositor,
                                     XEvent         *event,
                                     MetaWindow     *window)
@@ -94,6 +88,35 @@ meta_compositor_none_set_active_window (MetaCompositor *compositor,
 }
 
 static void
+meta_compositor_none_begin_move (MetaCompositor *compositor,
+                                 MetaWindow     *window,
+                                 MetaRectangle  *initial,
+                                 gint            grab_x,
+                                 gint            grab_y)
+{
+}
+
+static void
+meta_compositor_none_update_move (MetaCompositor *compositor,
+                                  MetaWindow     *window,
+                                  gint            x,
+                                  gint            y)
+{
+}
+
+static void
+meta_compositor_none_end_move (MetaCompositor *compositor,
+                               MetaWindow     *window)
+{
+}
+
+static void
+meta_compositor_none_free_window (MetaCompositor *compositor,
+                                  MetaWindow     *window)
+{
+}
+
+static void
 meta_compositor_none_maximize_window (MetaCompositor *compositor,
                                       MetaWindow     *window)
 {
@@ -115,6 +138,9 @@ static MetaCompositor comp_info = {
   meta_compositor_none_process_event,
   meta_compositor_none_get_window_surface,
   meta_compositor_none_set_active_window,
+  meta_compositor_none_begin_move,
+  meta_compositor_none_update_move,
+  meta_compositor_none_end_move,
   meta_compositor_none_free_window,
   meta_compositor_none_maximize_window,
   meta_compositor_none_unmaximize_window,
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index f323c4a..2ef817b 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -54,6 +54,20 @@ struct _MetaCompositor
                                             MetaScreen         *screen,
                                             MetaWindow         *window);
 
+  void              (* begin_move)         (MetaCompositor     *compositor,
+                                            MetaWindow         *window,
+                                            MetaRectangle      *initial,
+                                            gint                grab_x,
+                                            gint                grab_y);
+
+  void              (* update_move)        (MetaCompositor     *compositor,
+                                            MetaWindow         *window,
+                                            gint                x,
+                                            gint                y);
+
+  void              (* end_move)           (MetaCompositor     *compositor,
+                                            MetaWindow         *window);
+
   void              (* free_window)        (MetaCompositor     *compositor,
                                             MetaWindow         *window);
 
diff --git a/src/compositor/compositor-xrender.c b/src/compositor/compositor-xrender.c
index 7df2885..eac8c27 100644
--- a/src/compositor/compositor-xrender.c
+++ b/src/compositor/compositor-xrender.c
@@ -3037,6 +3037,12 @@ get_output_window (MetaScreen *screen)
 }
 
 static void
+meta_compositor_xrender_destroy (MetaCompositor *compositor)
+{
+  g_free (compositor);
+}
+
+static void
 meta_compositor_xrender_manage_screen (MetaCompositor *compositor,
                                        MetaScreen     *screen)
 {
@@ -3203,76 +3209,6 @@ meta_compositor_xrender_set_updates (MetaCompositor *compositor,
 }
 
 static void
-meta_compositor_xrender_destroy (MetaCompositor *compositor)
-{
-  g_free (compositor);
-}
-
-#if 0
-/* Taking these out because they're empty and never called, and the
- * compiler complains -- tthurman
- */
-
-static void
-xrender_begin_move (MetaCompositor *compositor,
-                    MetaWindow     *window,
-                    MetaRectangle  *initial,
-                    int             grab_x,
-                    int             grab_y)
-{
-}
-
-static void
-xrender_update_move (MetaCompositor *compositor,
-                     MetaWindow     *window,
-                     int             x,
-                     int             y)
-{
-}
-
-static void
-xrender_end_move (MetaCompositor *compositor,
-                  MetaWindow     *window)
-{
-}
-#endif /* 0 */
-
-static void
-meta_compositor_xrender_free_window (MetaCompositor *compositor,
-                                     MetaWindow     *window)
-{
-  MetaCompositorXRender *xrc;
-  MetaFrame *frame;
-  Window xwindow;
-  MetaCompWindow *cw;
-
-  xrc = (MetaCompositorXRender *) compositor;
-  frame = meta_window_get_frame (window);
-
-  if (frame)
-    xwindow = meta_frame_get_xwindow (frame);
-  else
-    xwindow = meta_window_get_xwindow (window);
-
-  cw = find_window_in_display (xrc->display, xwindow);
-  if (cw == NULL)
-    return;
-
-  cw->window = NULL;
-  cw->attrs.map_state = IsUnmapped;
-  cw->damaged = FALSE;
-
-  if (cw->extents != None)
-    {
-      dump_xserver_region (xrc, "destroy_win", cw->extents);
-      add_damage (xrc, cw->screen, cw->extents);
-      cw->extents = None;
-    }
-
-  free_win (cw, FALSE);
-}
-
-static void
 meta_compositor_xrender_process_event (MetaCompositor *compositor,
                                        XEvent         *event,
                                        MetaWindow     *window)
@@ -3625,6 +3561,64 @@ meta_compositor_xrender_set_active_window (MetaCompositor *compositor,
 }
 
 static void
+meta_compositor_xrender_begin_move (MetaCompositor *compositor,
+                                    MetaWindow     *window,
+                                    MetaRectangle  *initial,
+                                    gint            grab_x,
+                                    gint            grab_y)
+{
+}
+
+static void
+meta_compositor_xrender_update_move (MetaCompositor *compositor,
+                                     MetaWindow     *window,
+                                     gint            x,
+                                     gint            y)
+{
+}
+
+static void
+meta_compositor_xrender_end_move (MetaCompositor *compositor,
+                                  MetaWindow     *window)
+{
+}
+
+static void
+meta_compositor_xrender_free_window (MetaCompositor *compositor,
+                                     MetaWindow     *window)
+{
+  MetaCompositorXRender *xrc;
+  MetaFrame *frame;
+  Window xwindow;
+  MetaCompWindow *cw;
+
+  xrc = (MetaCompositorXRender *) compositor;
+  frame = meta_window_get_frame (window);
+
+  if (frame)
+    xwindow = meta_frame_get_xwindow (frame);
+  else
+    xwindow = meta_window_get_xwindow (window);
+
+  cw = find_window_in_display (xrc->display, xwindow);
+  if (cw == NULL)
+    return;
+
+  cw->window = NULL;
+  cw->attrs.map_state = IsUnmapped;
+  cw->damaged = FALSE;
+
+  if (cw->extents != None)
+    {
+      dump_xserver_region (xrc, "destroy_win", cw->extents);
+      add_damage (xrc, cw->screen, cw->extents);
+      cw->extents = None;
+    }
+
+  free_win (cw, FALSE);
+}
+
+static void
 meta_compositor_xrender_maximize_window (MetaCompositor *compositor,
                                          MetaWindow     *window)
 {
@@ -3662,6 +3656,9 @@ static MetaCompositor comp_info = {
   meta_compositor_xrender_process_event,
   meta_compositor_xrender_get_window_surface,
   meta_compositor_xrender_set_active_window,
+  meta_compositor_xrender_begin_move,
+  meta_compositor_xrender_update_move,
+  meta_compositor_xrender_end_move,
   meta_compositor_xrender_free_window,
   meta_compositor_xrender_maximize_window,
   meta_compositor_xrender_unmaximize_window,
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index c3f046f..4c565f3 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -127,6 +127,8 @@ meta_compositor_begin_move (MetaCompositor *compositor,
                             gint            grab_x,
                             gint            grab_y)
 {
+  if (compositor && compositor->begin_move)
+    compositor->begin_move (compositor, window, initial, grab_x, grab_y);
 }
 
 void
@@ -135,12 +137,16 @@ meta_compositor_update_move (MetaCompositor *compositor,
                              gint            x,
                              gint            y)
 {
+  if (compositor && compositor->update_move)
+    compositor->update_move (compositor, window, x, y);
 }
 
 void
 meta_compositor_end_move (MetaCompositor *compositor,
                           MetaWindow     *window)
 {
+  if (compositor && compositor->end_move)
+    compositor->end_move (compositor, window);
 }
 
 void meta_compositor_free_window (MetaCompositor *compositor,


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