[gimp] app: add gimp_display_shell_set_action_sensitive()



commit a942b771fb82318fee54fa79f5228b403bc98322
Author: Michael Natterer <mitch gimp org>
Date:   Mon May 16 13:00:27 2016 +0200

    app: add gimp_display_shell_set_action_sensitive()

 app/display/gimpdisplayshell-actions.c |   38 ++++++++++++++++++++++++++++++++
 app/display/gimpdisplayshell-actions.h |   15 +++++++-----
 2 files changed, 47 insertions(+), 6 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-actions.c b/app/display/gimpdisplayshell-actions.c
index b6b2275..98be13a 100644
--- a/app/display/gimpdisplayshell-actions.c
+++ b/app/display/gimpdisplayshell-actions.c
@@ -35,6 +35,44 @@
 
 
 void
+gimp_display_shell_set_action_sensitive (GimpDisplayShell *shell,
+                                         const gchar      *action,
+                                         gboolean          sensitive)
+{
+  GimpImageWindow *window;
+  GimpContext     *context;
+
+  g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+  g_return_if_fail (action != NULL);
+
+  window = gimp_display_shell_get_window (shell);
+
+  if (window && gimp_image_window_get_active_shell (window) == shell)
+    {
+      GimpUIManager   *manager = gimp_image_window_get_ui_manager (window);
+      GimpActionGroup *action_group;
+
+      action_group = gimp_ui_manager_get_action_group (manager, "view");
+
+      if (action_group)
+        gimp_action_group_set_action_sensitive (action_group, action, sensitive);
+    }
+
+  context = gimp_get_user_context (shell->display->gimp);
+
+  if (shell->display == gimp_context_get_display (context))
+    {
+      GimpActionGroup *action_group;
+
+      action_group = gimp_ui_manager_get_action_group (shell->popup_manager,
+                                                       "view");
+
+      if (action_group)
+        gimp_action_group_set_action_sensitive (action_group, action, sensitive);
+    }
+}
+
+void
 gimp_display_shell_set_action_active (GimpDisplayShell *shell,
                                       const gchar      *action,
                                       gboolean          active)
diff --git a/app/display/gimpdisplayshell-actions.h b/app/display/gimpdisplayshell-actions.h
index f2a1963..c08b0b7 100644
--- a/app/display/gimpdisplayshell-actions.h
+++ b/app/display/gimpdisplayshell-actions.h
@@ -19,12 +19,15 @@
 #define __GIMP_DISPLAY_SHELL_ACTIONS_H__
 
 
-void   gimp_display_shell_set_action_active (GimpDisplayShell *shell,
-                                             const gchar      *action,
-                                             gboolean          active);
-void   gimp_display_shell_set_action_color  (GimpDisplayShell *shell,
-                                             const gchar      *action,
-                                             const GimpRGB    *color);
+void   gimp_display_shell_set_action_sensitive (GimpDisplayShell *shell,
+                                                const gchar      *action,
+                                                gboolean          sensitive);
+void   gimp_display_shell_set_action_active    (GimpDisplayShell *shell,
+                                                const gchar      *action,
+                                                gboolean          active);
+void   gimp_display_shell_set_action_color     (GimpDisplayShell *shell,
+                                                const gchar      *action,
+                                                const GimpRGB    *color);
 
 
 #endif /* __GIMP_DISPLAY_SHELL_ACTIONS_H__ */


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