From d259ff5b7ad5dc72cdca2df50c45acc18b4e4076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= Date: Sun, 8 Jan 2017 20:05:15 +0200 Subject: 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 31280ef9..56044ae9 100644 --- a/src/compositor/compositor-none.c +++ b/src/compositor/compositor-none.c @@ -27,6 +27,12 @@ typedef struct MetaDisplay *display; } MetaCompositorNone; +static void +meta_compositor_none_destroy (MetaCompositor *compositor) +{ + g_free (compositor); +} + static void meta_compositor_none_manage_screen (MetaCompositor *compositor, MetaScreen *screen) @@ -60,18 +66,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, @@ -93,6 +87,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 f323c4ac..2ef817b1 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 7df28853..eac8c274 100644 --- a/src/compositor/compositor-xrender.c +++ b/src/compositor/compositor-xrender.c @@ -3036,6 +3036,12 @@ get_output_window (MetaScreen *screen) return output; } +static void +meta_compositor_xrender_destroy (MetaCompositor *compositor) +{ + g_free (compositor); +} + static void meta_compositor_xrender_manage_screen (MetaCompositor *compositor, MetaScreen *screen) @@ -3202,76 +3208,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, @@ -3624,6 +3560,64 @@ meta_compositor_xrender_set_active_window (MetaCompositor *compositor, #endif } +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 c3f046ff..4c565f3d 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, -- cgit v1.2.1