- 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);