xiterm

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

commit
e8ba7e087c366a519fc58245dba81b02195e8a7a
parent
51cfdb39f6a2e02b58779fb4bf0ac62e934875e7
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2020-09-19 06:02
refactor: convert match_key to macro

Diffstat

M xiterm.c 23 +++++++++++------------

1 files changed, 11 insertions, 12 deletions


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

@@ -5,6 +5,7 @@
    5     5 #include <pcre2.h>
    6     6 
    7     7 #define REGEX_URL "https?://[a-zA-Z0-9./_-]+"
   -1     8 #define KEY(v, s) (event->keyval == (v) && event->state == (GDK_CONTROL_MASK|(s)))
    8     9 
    9    10 GtkApplication *app;
   10    11 GtkWidget *window;
@@ -19,10 +20,6 @@ const char *colors[16] = {
   19    20 	"#333", "#f33", "#7c0", "#ed0", "#6ad", "#c8b", "#0dd", "#fff",
   20    21 };
   21    22 
   22    -1 gboolean match_key(GdkEventKey *event, int state, int keyval) {
   23    -1 	return event->state == state && event->keyval == keyval;
   24    -1 }
   25    -1 
   26    23 void set_font_scale(double value) {
   27    24 	int i, n;
   28    25 	GtkWidget *page;
@@ -129,23 +126,25 @@ void add_tab(void) {
  129   126 gboolean on_key(GtkWidget *widget, GdkEventKey *event, gpointer user_data) {
  130   127 	VteTerminal *term;
  131   128 
  132    -1 	if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_T)) {
   -1   129 	if (!(event->state & GDK_CONTROL_MASK)) {
   -1   130 		return FALSE;
   -1   131 	} else if (KEY(GDK_KEY_T, GDK_SHIFT_MASK)) {
  133   132 		add_tab();
  134    -1 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_Page_Up)) {
   -1   133 	} else if (KEY(GDK_KEY_Page_Up, 0)) {
  135   134 		gtk_notebook_prev_page(notebook);
  136    -1 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_Page_Down)) {
   -1   135 	} else if (KEY(GDK_KEY_Page_Down, 0)) {
  137   136 		gtk_notebook_next_page(notebook);
  138    -1 	} else if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_C)) {
   -1   137 	} else if (KEY(GDK_KEY_C, GDK_SHIFT_MASK)) {
  139   138 		term = get_current_term();
  140   139 		vte_terminal_copy_clipboard_format(term, VTE_FORMAT_TEXT);
  141    -1 	} else if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_V)) {
   -1   140 	} else if (KEY(GDK_KEY_V, GDK_SHIFT_MASK)) {
  142   141 		term = get_current_term();
  143   142 		vte_terminal_paste_clipboard(term);
  144    -1 	} else if (match_key(event, GDK_CONTROL_MASK|GDK_SHIFT_MASK, GDK_KEY_plus)) {
   -1   143 	} else if (KEY(GDK_KEY_plus, GDK_SHIFT_MASK)) {
  145   144 		set_font_scale(font_scale * 1.2);
  146    -1 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_minus)) {
   -1   145 	} else if (KEY(GDK_KEY_minus, 0)) {
  147   146 		set_font_scale(font_scale / 1.2);
  148    -1 	} else if (match_key(event, GDK_CONTROL_MASK, GDK_KEY_0)) {
   -1   147 	} else if (KEY(GDK_KEY_0, 0)) {
  149   148 		set_font_scale(1);
  150   149 	} else {
  151   150 		return FALSE;