From d9d18bf7f3817c7fcb6854cdf0f8c89e89617fe9 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Tue, 12 Mar 2024 15:10:20 -0300 Subject: gtk3 to gtk4: don't access GdkEvent fields directly --- config.h | 1 + makefile | 10 +++++----- rose | Bin 39008 -> 39112 bytes rose.c | 12 +++++++++--- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/config.h b/config.h index 7fff23a..7513012 100644 --- a/config.h +++ b/config.h @@ -75,6 +75,7 @@ typedef enum { #define SFT 1 << 0 #define CTRL 1 << 2 #define ALT 1 << 3 +// reference: static struct { unsigned mod; diff --git a/makefile b/makefile index 1ee729d..286231d 100644 --- a/makefile +++ b/makefile @@ -1,8 +1,8 @@ - # C compiler CC=gcc # other options: tcc, clang, zig cc WARNINGS=-Wall DEBUG= #'-g' +COMPILETIME_DEPRECATION_WARNINGS=#-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED # turns out that webkit2gtk-4.1 is using some deprecated stuff, lol OPTIMIZED_SOME=-O3 OPTIMIZED_MORE=-Ofast -march=native -funit-at-a-time -flto # binary will not be compatible with other computers, but may be much faster @@ -29,12 +29,12 @@ STYLE_BLUEPRINT=webkit FORMATTER=clang-format -i -style=$(STYLE_BLUEPRINT) # Change hardcoded paths when building -## Cache +## Data dirs USER=`whoami` DEFAULT_DATA_DIR=/home/nuno/.cache/rose CURRENT_DATA_DIR=/home/$(USER)/.cache/rose ## dir -DEFAULT_DIR=/home/loki/Documents/core/software/fresh/C/rose-browser/rosenrot +DEFAULT_DIR=/home/nuno/Documents/workspace/rosenrot CURRENT_DIR=`pwd` build: $(SRC) $(PLUGINS) $(CONFIG) @@ -51,7 +51,7 @@ build: $(SRC) $(PLUGINS) $(CONFIG) sed -i "s|$(DEFAULT_DIR)|$(CURRENT_DIR)|g" {} + # Compile rosenrot GIO_MODULE_DIR=/usr/lib/x86_64-linux-gnu/gio/modules/ - $(CC) $(WARNINGS) $(OPTIMIZED_SOME) $(DEBUG) $(INCS) $(PLUGINS) $(SRC) -o rose $(LIBS) $(ADBLOCK) + $(CC) $(WARNINGS) $(OPTIMIZED_SOME) $(DEBUG) $(INCS) $(PLUGINS) $(SRC) $(COMPILETIME_DEPRECATION_WARNINGS) -o rose $(LIBS) $(ADBLOCK) fast: $(SRC) $(PLUGINS) $(CONFIG) rm -f *.gcda @@ -92,7 +92,7 @@ format: $(SRC) $(PLUGINS) $(FORMATTER) $(SRC) $(PLUGINS) $(rose.h) diagnose_deprecations: - make && G_ENABLE_DIAGNOSTIC=1 ./rose + G_ENABLE_DIAGNOSTIC=1 ./rose view-gtk3-version: dpkg -l libgtk-3-0 diff --git a/rose b/rose index d6a6f8d..8a51275 100755 Binary files a/rose and b/rose differ diff --git a/rose.c b/rose.c index f7d9ccc..0f49522 100644 --- a/rose.c +++ b/rose.c @@ -381,15 +381,21 @@ int handle_signal_keypress(void* self, GdkEvent* event, GtkNotebook* notebook) { (void)self; + guint event_keyval = 0; + gdk_event_get_keyval(event, &event_keyval); + GdkModifierType event_state = 0; + gdk_event_get_state(event, &event_state); + /* - printf("Keypress state: %d\n", event->key.state); + printf("Keypress state: %d\n", event_state); if(event->key.state & GDK_CONTROL_MASK){ printf("Keypress state is: CONTROL\n"); } - printf("Keypress value: %d\n", event->key.keyval); + printf("Keypress value: %d\n", event_keyval); */ + for (int i = 0; i < sizeof(shortcut) / sizeof(shortcut[0]); i++) - if ((event->key.state & shortcut[i].mod || shortcut[i].mod == 0x0) && event->key.keyval == shortcut[i].key) + if ((event_state & shortcut[i].mod || shortcut[i].mod == 0x0) && event_keyval == shortcut[i].key) return handle_shortcut(shortcut[i].id, notebook); /* If I wanted to bind button presses, like the extra button in the mouse, -- cgit v1.2.3