xiterm

simple vte terminal emulator
git clone https://git.ce9e.org/xiterm.git

commit
29b8202313c70ac6dd1a7d4bd5313841a55b00f6
parent
26da277ef02b3d0f38fe3b7a4123dbcfedc1113d
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2022-12-01 20:38
allow to reorder tabs using keyboard

Diffstat

M xiterm.c 16 ++++++++++++++--

1 files changed, 14 insertions, 2 deletions


diff --git a/xiterm.c b/xiterm.c

@@ -148,6 +148,14 @@ void add_tab(void) {
  148   148 	gtk_widget_grab_focus(page);
  149   149 }
  150   150 
   -1   151 void move_tab(int offset) {
   -1   152 	int k = gtk_notebook_get_current_page(notebook);
   -1   153 	GtkWidget *widget = gtk_notebook_get_nth_page(notebook, k);
   -1   154 	if (k + offset >= 0) {
   -1   155 		gtk_notebook_reorder_child(notebook, widget, k + offset);
   -1   156 	}
   -1   157 }
   -1   158 
  151   159 gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
  152   160 	VteTerminal *term;
  153   161 	GdkModifierType modifiers;
@@ -158,10 +166,14 @@ gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
  158   166 		return FALSE;
  159   167 	} else if (KEY(GDK_KEY_T, GDK_SHIFT_MASK)) {
  160   168 		add_tab();
  161    -1 	} else if (KEY_S(GDK_KEY_Page_Up)) {
   -1   169 	} else if (KEY(GDK_KEY_Page_Up, 0)) {
  162   170 		gtk_notebook_prev_page(notebook);
  163    -1 	} else if (KEY_S(GDK_KEY_Page_Down)) {
   -1   171 	} else if (KEY(GDK_KEY_Page_Down, 0)) {
  164   172 		gtk_notebook_next_page(notebook);
   -1   173 	} else if (KEY(GDK_KEY_Page_Up, GDK_SHIFT_MASK)) {
   -1   174 		move_tab(-1);
   -1   175 	} else if (KEY(GDK_KEY_Page_Down, GDK_SHIFT_MASK)) {
   -1   176 		move_tab(1);
  165   177 	} else if (KEY(GDK_KEY_C, GDK_SHIFT_MASK)) {
  166   178 		term = get_current_term();
  167   179 		vte_terminal_copy_clipboard_format(term, VTE_FORMAT_TEXT);