diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-01-08 20:05:15 +0200 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-01-08 20:05:15 +0200 |
commit | d259ff5b7ad5dc72cdca2df50c45acc18b4e4076 (patch) | |
tree | 292157004be57493cdfc66c78d8d757f25894834 | |
parent | f0e4c22f04cf21520aa5d19711c4e70aca5b9190 (diff) | |
download | metacity-d259ff5b7ad5dc72cdca2df50c45acc18b4e4076.tar.gz |
compositor: add missing vfuncs
-rw-r--r-- | src/compositor/compositor-none.c | 50 | ||||
-rw-r--r-- | src/compositor/compositor-private.h | 14 | ||||
-rw-r--r-- | src/compositor/compositor-xrender.c | 137 | ||||
-rw-r--r-- | 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 @@ -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 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 @@ -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 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, |