[gnome-builder/wip/chergert/layout: 118/118] workbench: notify perspectives of fullscreen state



commit 0c008483f51268b814e55672cae21551164f57d8
Author: Christian Hergert <chergert redhat com>
Date:   Wed Jul 5 04:48:23 2017 -0700

    workbench: notify perspectives of fullscreen state

 libide/workbench/ide-workbench.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/libide/workbench/ide-workbench.c b/libide/workbench/ide-workbench.c
index c8e7c78..07fcef7 100644
--- a/libide/workbench/ide-workbench.c
+++ b/libide/workbench/ide-workbench.c
@@ -1175,6 +1175,21 @@ ide_workbench_get_focus_mode (IdeWorkbench *self)
   return self->focus_mode;
 }
 
+static void
+ide_workbench_notify_addins_fullscreen (PeasExtensionSet *set,
+                                        PeasPluginInfo   *plugin_info,
+                                        PeasExtension    *exten,
+                                        gpointer          user_data)
+{
+  IdeWorkbench *self = user_data;
+  IdePerspective *perspective = (IdePerspective *)exten;
+
+  g_assert (IDE_IS_WORKBENCH (self));
+  g_assert (IDE_IS_PERSPECTIVE (perspective));
+
+  ide_perspective_set_fullscreen (perspective, self->focus_mode);
+}
+
 void
 ide_workbench_set_focus_mode (IdeWorkbench *self,
                               gboolean      focus_mode)
@@ -1214,5 +1229,9 @@ ide_workbench_set_focus_mode (IdeWorkbench *self,
 
   g_object_unref (self->header_stack);
 
+  peas_extension_set_foreach (self->addins,
+                              ide_workbench_notify_addins_fullscreen,
+                              self);
+
   g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_FOCUS_MODE]);
 }


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