aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNunoSempere <nuno.semperelh@protonmail.com>2024-03-12 15:10:20 -0300
committerNunoSempere <nuno.semperelh@protonmail.com>2024-03-12 15:10:20 -0300
commitd9d18bf7f3817c7fcb6854cdf0f8c89e89617fe9 (patch)
tree8022d8043f784e85af3b2b89abacf71948296c86
parent4663cb3a70f7be45b196229b45e6c4cede1bfd59 (diff)
gtk3 to gtk4: don't access GdkEvent fields directly
-rw-r--r--config.h1
-rw-r--r--makefile10
-rwxr-xr-xrosebin39008 -> 39112 bytes
-rw-r--r--rose.c12
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: <https://github.com/GNOME/gtk/blob/7ea7d5c3906ccd231b04654101bb742f157d82f6/gdk/gdkenums.h#L140>
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
--- a/rose
+++ b/rose
Binary files 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,