@@ -12,6 +12,25 @@ gboolean window_startup_close_request(GtkWindow *w, gpointer data) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean on_key_press(
|
||||||
|
GtkEventControllerKey *controller,
|
||||||
|
guint keyval,
|
||||||
|
guint keycode,
|
||||||
|
GdkModifierType state,
|
||||||
|
gpointer user_data
|
||||||
|
) {
|
||||||
|
GtkWidget *widget = gtk_event_controller_get_widget(
|
||||||
|
GTK_EVENT_CONTROLLER(controller)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (keyval == GDK_KEY_Escape) {
|
||||||
|
gtk_window_close(GTK_WINDOW(widget));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *create_subwindow(
|
GtkWidget *create_subwindow(
|
||||||
struct alsa_card *card,
|
struct alsa_card *card,
|
||||||
const char *name,
|
const char *name,
|
||||||
@@ -24,6 +43,12 @@ GtkWidget *create_subwindow(
|
|||||||
gtk_window_set_title(GTK_WINDOW(w), title);
|
gtk_window_set_title(GTK_WINDOW(w), title);
|
||||||
g_signal_connect(w, "close_request", G_CALLBACK(close_callback), card);
|
g_signal_connect(w, "close_request", G_CALLBACK(close_callback), card);
|
||||||
|
|
||||||
|
GtkEventController *key_controller = gtk_event_controller_key_new();
|
||||||
|
gtk_widget_add_controller(w, key_controller);
|
||||||
|
g_signal_connect(
|
||||||
|
key_controller, "key-pressed", G_CALLBACK(on_key_press), NULL
|
||||||
|
);
|
||||||
|
|
||||||
g_free(title);
|
g_free(title);
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user