[gnome-builder] plugins/vim: clear command/command-bar when page switching



commit d1b63e17958bb959b708e5c3f5f3949271406fa6
Author: Christian Hergert <chergert redhat com>
Date:   Sat Sep 17 13:45:40 2022 -0700

    plugins/vim: clear command/command-bar when page switching

 src/plugins/vim/gbp-vim-workspace-addin.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
---
diff --git a/src/plugins/vim/gbp-vim-workspace-addin.c b/src/plugins/vim/gbp-vim-workspace-addin.c
index c7579c191..de76bb91d 100644
--- a/src/plugins/vim/gbp-vim-workspace-addin.c
+++ b/src/plugins/vim/gbp-vim-workspace-addin.c
@@ -25,6 +25,7 @@
 #include <gtk/gtk.h>
 #include <libpanel.h>
 
+#include <libide-editor.h>
 #include <libide-gui.h>
 
 #include "gbp-vim-workspace-addin.h"
@@ -153,11 +154,33 @@ gbp_vim_workspace_addin_unload (IdeWorkspaceAddin *addin,
   IDE_EXIT;
 }
 
+static void
+gbp_vim_workspace_addin_page_changed (IdeWorkspaceAddin *addin,
+                                      IdePage           *page)
+{
+  GbpVimWorkspaceAddin *self = (GbpVimWorkspaceAddin *)addin;
+
+  IDE_ENTRY;
+
+  g_assert (IDE_IS_MAIN_THREAD ());
+  g_assert (GBP_IS_VIM_WORKSPACE_ADDIN (self));
+  g_assert (!page || IDE_IS_PAGE (page));
+
+  if (!IDE_IS_EDITOR_PAGE (page))
+    {
+      gbp_vim_workspace_addin_set_command_bar (self, NULL);
+      gbp_vim_workspace_addin_set_command (self, NULL);
+    }
+
+  IDE_EXIT;
+}
+
 static void
 workspace_addin_iface_init (IdeWorkspaceAddinInterface *iface)
 {
   iface->load = gbp_vim_workspace_addin_load;
   iface->unload = gbp_vim_workspace_addin_unload;
+  iface->page_changed = gbp_vim_workspace_addin_page_changed;
 }
 
 G_DEFINE_FINAL_TYPE_WITH_CODE (GbpVimWorkspaceAddin, gbp_vim_workspace_addin, G_TYPE_OBJECT,


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