[Xfce4-commits] [apps/xfce4-terminal] 01/01: Add action to switch to last active tab

noreply at xfce.org noreply at xfce.org
Thu Mar 21 17:13:03 CET 2019


This is an automated email from the git hooks/post-receive script.

f   2   4   0   4       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-terminal.

commit 62df87a0012dd7c25e1c86916b32c38672c4640b
Author: Igor <f2404 at yandex.ru>
Date:   Thu Mar 21 12:10:15 2019 -0400

    Add action to switch to last active tab
    
    Bug #15201
---
 terminal/terminal-window-ui.xml |  1 +
 terminal/terminal-window.c      | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/terminal/terminal-window-ui.xml b/terminal/terminal-window-ui.xml
index 7896ace..2aba0d1 100644
--- a/terminal/terminal-window-ui.xml
+++ b/terminal/terminal-window-ui.xml
@@ -61,6 +61,7 @@
     <menu action="tabs-menu">
       <menuitem action="prev-tab"/>
       <menuitem action="next-tab"/>
+      <menuitem action="last-active-tab"/>
       <separator/>
       <menuitem action="move-tab-left"/>
       <menuitem action="move-tab-right"/>
diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c
index a9556aa..0f53364 100644
--- a/terminal/terminal-window.c
+++ b/terminal/terminal-window.c
@@ -223,6 +223,8 @@ static void         terminal_window_action_prev_tab               (GtkAction
                                                                    TerminalWindow      *window);
 static void         terminal_window_action_next_tab               (GtkAction           *action,
                                                                    TerminalWindow      *window);
+static void         terminal_window_action_last_active_tab        (GtkAction           *action,
+                                                                   TerminalWindow      *window);
 static void         terminal_window_action_move_tab_left          (GtkAction           *action,
                                                                    TerminalWindow      *window);
 static void         terminal_window_action_move_tab_right         (GtkAction           *action,
@@ -303,6 +305,7 @@ struct _TerminalWindowPrivate
   GtkAction           *action_close_other_tabs;
   GtkAction           *action_prev_tab;
   GtkAction           *action_next_tab;
+  GtkAction           *action_last_active_tab;
   GtkAction           *action_move_tab_left;
   GtkAction           *action_move_tab_right;
   GtkAction           *action_copy;
@@ -363,6 +366,7 @@ static const GtkActionEntry action_entries[] =
   { "tabs-menu", NULL, N_ ("T_abs"), NULL, NULL, NULL, },
     { "prev-tab", "go-previous", N_ ("_Previous Tab"), "<control>Page_Up", N_ ("Switch to previous tab"), G_CALLBACK (terminal_window_action_prev_tab), },
     { "next-tab", "go-next", N_ ("_Next Tab"), "<control>Page_Down", N_ ("Switch to next tab"), G_CALLBACK (terminal_window_action_next_tab), },
+    { "last-active-tab", NULL, N_ ("Last _Active Tab"), NULL, N_ ("Switch to last active tab"), G_CALLBACK (terminal_window_action_last_active_tab), },
     { "move-tab-left", NULL, N_ ("Move Tab _Left"), "<control><shift>Page_Up", NULL, G_CALLBACK (terminal_window_action_move_tab_left), },
     { "move-tab-right", NULL, N_ ("Move Tab _Right"), "<control><shift>Page_Down", NULL, G_CALLBACK (terminal_window_action_move_tab_right), },
   { "help-menu", NULL, N_ ("_Help"), NULL, NULL, NULL, },
@@ -571,6 +575,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
   window->priv->action_close_other_tabs = terminal_window_get_action (window, "close-other-tabs");
   window->priv->action_prev_tab = terminal_window_get_action (window, "prev-tab");
   window->priv->action_next_tab = terminal_window_get_action (window, "next-tab");
+  window->priv->action_last_active_tab = terminal_window_get_action (window, "last-active-tab");
   window->priv->action_move_tab_left = terminal_window_get_action (window, "move-tab-left");
   window->priv->action_move_tab_right = terminal_window_get_action (window, "move-tab-right");
   window->priv->action_copy = terminal_window_get_action (window, "copy");
@@ -1056,6 +1061,7 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
       gtk_action_set_sensitive (window->priv->action_move_tab_left, can_go_left);
       gtk_action_set_sensitive (window->priv->action_next_tab, can_go_right);
       gtk_action_set_sensitive (window->priv->action_move_tab_right, can_go_right);
+      gtk_action_set_sensitive (window->priv->action_last_active_tab, window->priv->last_active != NULL);
 
       gtk_action_set_sensitive (window->priv->action_copy,
                                 terminal_screen_has_selection (window->priv->active));
@@ -2116,6 +2122,21 @@ terminal_window_action_next_tab (GtkAction      *action,
 
 
 static void
+terminal_window_action_last_active_tab (GtkAction      *action,
+                                        TerminalWindow *window)
+{
+  if (window->priv->last_active != NULL)
+    {
+      GtkNotebook *notebook = GTK_NOTEBOOK (window->priv->notebook);
+      gint page_num = gtk_notebook_page_num (notebook, GTK_WIDGET (window->priv->last_active));
+      gtk_notebook_set_current_page (notebook, page_num);
+      terminal_window_update_actions (window);
+    }
+}
+
+
+
+static void
 terminal_window_action_move_tab_left (GtkAction      *action,
                                       TerminalWindow *window)
 {

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list