From 9c03e78505900c700f5179ec13cf1c844d86a1d2 Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Mon, 26 Sep 2016 15:54:54 +0200 Subject: [PATCH] MetaPlugin: add a size_changed vfunc This will be used to let plugins know when a previous size change actually becomes effective. This is needed to handle wayland client resizing properly since, unlike X, it's async. https://bugzilla.gnome.org/show_bug.cgi?id=770345 --- src/compositor/meta-plugin-manager.c | 11 +++++++++++ src/compositor/meta-plugin-manager.h | 3 +++ src/meta/meta-plugin.h | 3 +++ 3 files changed, 17 insertions(+) diff --git a/src/compositor/meta-plugin-manager.c b/src/compositor/meta-plugin-manager.c index ac5716db5..1a1b000cf 100644 --- a/src/compositor/meta-plugin-manager.c +++ b/src/compositor/meta-plugin-manager.c @@ -202,6 +202,17 @@ meta_plugin_manager_event_simple (MetaPluginManager *plugin_mgr, return retval; } +void +meta_plugin_manager_event_size_changed (MetaPluginManager *plugin_mgr, + MetaWindowActor *actor) +{ + MetaPlugin *plugin = plugin_mgr->plugin; + MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin); + + if (klass->size_changed) + klass->size_changed (plugin, actor); +} + gboolean meta_plugin_manager_event_size_change (MetaPluginManager *plugin_mgr, MetaWindowActor *actor, diff --git a/src/compositor/meta-plugin-manager.h b/src/compositor/meta-plugin-manager.h index 885189762..ff0b97652 100644 --- a/src/compositor/meta-plugin-manager.h +++ b/src/compositor/meta-plugin-manager.h @@ -50,6 +50,9 @@ gboolean meta_plugin_manager_event_simple (MetaPluginManager *mgr, MetaWindowActor *actor, MetaPluginEffect event); +void meta_plugin_manager_event_size_changed (MetaPluginManager *mgr, + MetaWindowActor *actor); + gboolean meta_plugin_manager_event_size_change (MetaPluginManager *mgr, MetaWindowActor *actor, MetaSizeChange which_change, diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h index 77a3648f4..4f8136d63 100644 --- a/src/meta/meta-plugin.h +++ b/src/meta/meta-plugin.h @@ -102,6 +102,9 @@ struct _MetaPluginClass void (*unminimize) (MetaPlugin *plugin, MetaWindowActor *actor); + void (*size_changed) (MetaPlugin *plugin, + MetaWindowActor *actor); + void (*size_change) (MetaPlugin *plugin, MetaWindowActor *actor, MetaSizeChange which_change,