[vte/wip/rishi/container-escape-sequence: 2/2] Test the signals to track the active container inside the terminal



commit d7982ccf3dc5fcb8caa6d0d0ef10c54d0e24f8d1
Author: Debarshi Ray <debarshir gnome org>
Date:   Tue Jun 11 16:51:44 2019 +0200

    Test the signals to track the active container inside the terminal
    
    https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17

 bindings/vala/app.vala | 16 ++++++++++++++++
 src/app/app.cc         | 26 ++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)
---
diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala
index fc26c2b0..c13bafc9 100644
--- a/bindings/vala/app.vala
+++ b/bindings/vala/app.vala
@@ -291,6 +291,8 @@ class Window : Gtk.ApplicationWindow
     terminal.button_press_event.connect(button_press_event_cb);
     terminal.char_size_changed.connect(char_size_changed_cb);
     terminal.child_exited.connect(child_exited_cb);
+    terminal.current_container_popped.connect(container_popped_cb);
+    terminal.current_container_pushed.connect(container_pushed_cb);
     terminal.decrease_font_size.connect(decrease_font_size_cb);
     terminal.deiconify_window.connect(deiconify_window_cb);
     terminal.icon_title_changed.connect(icon_title_changed_cb);
@@ -684,6 +686,20 @@ class Window : Gtk.ApplicationWindow
     update_paste_sensitivity();
   }
 
+  private void container_popped_cb(Vte.Terminal terminal)
+  {
+    var name = terminal.get_current_container_name();
+    var runtime = terminal.get_current_container_runtime();
+    print("[container] popped: %s, %s\n", name, runtime);
+  }
+
+  private void container_pushed_cb(Vte.Terminal terminal)
+  {
+    var name = terminal.get_current_container_name();
+    var runtime = terminal.get_current_container_runtime();
+    print("[container] pushed: %s, %s\n", name, runtime);
+  }
+
   private void decrease_font_size_cb(Vte.Terminal terminal)
   {
     adjust_font_size(1.0 / 1.2);
diff --git a/src/app/app.cc b/src/app/app.cc
index 529b584d..0512ceb7 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -1620,6 +1620,24 @@ window_clipboard_owner_change_cb(GtkClipboard* clipboard,
         window_update_paste_sensitivity(window);
 }
 
+static void
+window_container_popped_cb (VteTerminal *terminal,
+                            gpointer user_data)
+{
+        const char *name = vte_terminal_get_current_container_name (terminal);
+        const char *runtime = vte_terminal_get_current_container_runtime (terminal);
+        g_print ("[container] popped: %s, %s\n", name, runtime);
+}
+
+static void
+window_container_pushed_cb (VteTerminal *terminal,
+                            gpointer user_data)
+{
+        const char *name = vte_terminal_get_current_container_name (terminal);
+        const char *runtime = vte_terminal_get_current_container_runtime (terminal);
+        g_print ("[container] pushed: %s, %s\n", name, runtime);
+}
+
 static void
 window_decrease_font_size_cb(VteTerminal* terminal,
                              VteappWindow* window)
@@ -1884,6 +1902,14 @@ vteapp_window_constructed(GObject *object)
         g_signal_connect(window->terminal, "button-press-event", G_CALLBACK(window_button_press_cb), window);
         g_signal_connect(window->terminal, "char-size-changed", G_CALLBACK(window_cell_size_changed_cb), 
window);
         g_signal_connect(window->terminal, "child-exited", G_CALLBACK(window_child_exited_cb), window);
+        g_signal_connect(window->terminal,
+                         "current-container-popped",
+                         G_CALLBACK(window_container_popped_cb),
+                         window);
+        g_signal_connect(window->terminal,
+                         "current-container-pushed",
+                         G_CALLBACK(window_container_pushed_cb),
+                         window);
         g_signal_connect(window->terminal, "decrease-font-size", G_CALLBACK(window_decrease_font_size_cb), 
window);
         g_signal_connect(window->terminal, "deiconify-window", G_CALLBACK(window_deiconify_window_cb), 
window);
         g_signal_connect(window->terminal, "icon-title-changed", G_CALLBACK(window_icon_title_changed_cb), 
window);


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