disabled immunity to alt+f4
This commit is contained in:
parent
811af43d39
commit
31e812aaf7
1 changed files with 31 additions and 0 deletions
31
sprechen.c
31
sprechen.c
|
|
@ -1,4 +1,5 @@
|
|||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <math.h>
|
||||
|
||||
#define NUM_UNITS 12
|
||||
|
|
@ -27,6 +28,28 @@ static void on_continue_clicked(GtkButton *button, gpointer user_data) {
|
|||
gtk_stack_set_visible_child_name(main_stack, "roadmap");
|
||||
}
|
||||
|
||||
static gboolean on_window_key_pressed(GtkEventControllerKey *controller,
|
||||
guint keyval, guint keycode,
|
||||
GdkModifierType state,
|
||||
gpointer user_data) {
|
||||
GtkWindow *window = user_data;
|
||||
|
||||
(void)controller;
|
||||
(void)keycode;
|
||||
|
||||
if ((keyval == GDK_KEY_q &&
|
||||
(state & (GDK_SUPER_MASK | GDK_META_MASK)) != 0) ||
|
||||
(keyval == GDK_KEY_F4 &&
|
||||
(state & GDK_ALT_MASK) != 0)) {
|
||||
GtkApplication *app = gtk_window_get_application(window);
|
||||
if (app != NULL)
|
||||
g_application_quit(G_APPLICATION(app));
|
||||
return GDK_EVENT_STOP;
|
||||
}
|
||||
|
||||
return GDK_EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
static GtkWidget *build_welcome_page(void) {
|
||||
GtkWidget *box;
|
||||
GtkWidget *heading;
|
||||
|
|
@ -226,6 +249,7 @@ static void activate(GtkApplication *app, gpointer user_data) {
|
|||
GtkWidget *title_label;
|
||||
GtkWidget *welcome_page;
|
||||
GtkWidget *roadmap_page;
|
||||
GtkEventController *keys;
|
||||
GtkCssProvider *provider;
|
||||
|
||||
// Create a new application window
|
||||
|
|
@ -255,6 +279,13 @@ static void activate(GtkApplication *app, gpointer user_data) {
|
|||
gtk_stack_add_named(main_stack, roadmap_page, "roadmap");
|
||||
gtk_stack_set_visible_child_name(main_stack, "welcome");
|
||||
|
||||
keys = gtk_event_controller_key_new();
|
||||
gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(keys),
|
||||
GTK_PHASE_CAPTURE);
|
||||
g_signal_connect(keys, "key-pressed",
|
||||
G_CALLBACK(on_window_key_pressed), window);
|
||||
gtk_widget_add_controller(GTK_WIDGET(window), GTK_EVENT_CONTROLLER(keys));
|
||||
|
||||
// Load Catppuccin Mocha CSS
|
||||
provider = gtk_css_provider_new();
|
||||
gtk_css_provider_load_from_string(provider,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue