[gnome-builder] libide/gui: handle addins that are action groups
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/gui: handle addins that are action groups
- Date: Fri, 29 Jul 2022 20:10:36 +0000 (UTC)
commit 0b7e0df20875a41c4cb5f0a6fd5f46c37a394be5
Author: Christian Hergert <chergert redhat com>
Date: Fri Jul 29 12:44:00 2022 -0700
libide/gui: handle addins that are action groups
src/libide/gui/ide-workbench-addin.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/src/libide/gui/ide-workbench-addin.c b/src/libide/gui/ide-workbench-addin.c
index 59fc5a837..86b305026 100644
--- a/src/libide/gui/ide-workbench-addin.c
+++ b/src/libide/gui/ide-workbench-addin.c
@@ -335,15 +335,24 @@ ide_workbench_addin_project_loaded (IdeWorkbenchAddin *self,
* "context.workbench.module-name" where "module-name" is replaced with the
* module-name of the plugin.
*
+ * If @self is a #GActionGroup and @self did not implement the
+ * `IdeWorkbenchAddinInterface.ref_action_group` vfunc, then @self is
+ * returned with it's reference count incremented.
+ *
* Returns: (transfer full) (nullable): a #GActionGroup or %NULL
*/
GActionGroup *
ide_workbench_addin_ref_action_group (IdeWorkbenchAddin *self)
{
+ GActionGroup *action_group = NULL;
+
g_return_val_if_fail (IDE_IS_WORKBENCH_ADDIN (self), NULL);
if (IDE_WORKBENCH_ADDIN_GET_IFACE (self)->ref_action_group)
- return IDE_WORKBENCH_ADDIN_GET_IFACE (self)->ref_action_group (self);
+ action_group = IDE_WORKBENCH_ADDIN_GET_IFACE (self)->ref_action_group (self);
+
+ if (action_group == NULL && G_IS_ACTION_GROUP (self))
+ action_group = g_object_ref (G_ACTION_GROUP (self));
- return NULL;
+ return action_group;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]