eekboard: quit gracefully
This commit is contained in:
@ -136,6 +136,8 @@ static void on_options_menu (GtkAction *action,
|
||||
GtkWidget *window);
|
||||
static void on_about (GtkAction *action,
|
||||
GtkWidget *window);
|
||||
static void on_quit (GtkAction * action,
|
||||
GtkWidget *window);
|
||||
#if 0
|
||||
static void on_monitor_key_event_toggled
|
||||
(GtkToggleAction *action,
|
||||
@ -195,7 +197,7 @@ static const GtkActionEntry action_entry[] = {
|
||||
{"FileMenu", NULL, N_("_File")},
|
||||
{"KeyboardMenu", NULL, N_("_Keyboard")},
|
||||
{"HelpMenu", NULL, N_("_Help")},
|
||||
{"Quit", GTK_STOCK_QUIT, NULL, NULL, NULL, G_CALLBACK (gtk_main_quit)},
|
||||
{"Quit", GTK_STOCK_QUIT, NULL, NULL, NULL, G_CALLBACK (on_quit)},
|
||||
{"Country", NULL, N_("Country"), NULL, NULL,
|
||||
G_CALLBACK(on_countries_menu)},
|
||||
{"Language", NULL, N_("Language"), NULL, NULL,
|
||||
@ -237,6 +239,19 @@ on_about (GtkAction * action, GtkWidget *window)
|
||||
"wrap-license", TRUE, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
on_quit (GtkAction * action, GtkWidget *window)
|
||||
{
|
||||
Eekboard *eekboard = g_object_get_data (G_OBJECT(window), "eekboard");
|
||||
|
||||
g_object_unref (eekboard->keyboard);
|
||||
g_object_unref (eekboard->layout);
|
||||
g_object_unref (eekboard->registry);
|
||||
g_object_unref (eekboard->engine);
|
||||
g_slice_free (Eekboard, eekboard);
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
||||
#if 0
|
||||
static gint
|
||||
key_snoop (AtkKeyEventStruct *event, gpointer func_data)
|
||||
|
||||
Reference in New Issue
Block a user