Updating branch refs/heads/master to 1d9dca11efbc9ac7f416d9c9dccb2049be2b5997 (commit) from f4fa63b92f0ee07268f0af8b0bccb39a03c0e0e5 (commit)
commit 1d9dca11efbc9ac7f416d9c9dccb2049be2b5997 Author: Eric Koegel <eric.koe...@gmail.com> Date: Sat Sep 21 10:50:39 2013 +0300 Workaround g_action_map being too new This adds in code for g_simple_action_group stuff so that it will work with glib versions earlier than 2.32. src/xfdesktop-application.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/xfdesktop-application.c b/src/xfdesktop-application.c index f1b2944..f52c821 100644 --- a/src/xfdesktop-application.c +++ b/src/xfdesktop-application.c @@ -99,6 +99,10 @@ struct _XfdesktopApplication { GApplication parent; +#if !GLIB_CHECK_VERSION (2, 32, 0) + GSimpleActionGroup *actions; +#endif + GtkWidget **desktops; XfconfChannel *channel; gint nscreens; @@ -130,33 +134,51 @@ xfdesktop_application_class_init(XfdesktopApplicationClass *klass) } static void +xfdesktop_application_add_action(XfdesktopApplication *app, GAction *action) +{ +#if GLIB_CHECK_VERSION (2, 32, 0) + g_action_map_add_action(G_ACTION_MAP(app), action); +#else + g_simple_action_group_insert(app->actions, action); +#endif +} + +static void xfdesktop_application_init(XfdesktopApplication *app) { GSimpleAction *action; +#if !GLIB_CHECK_VERSION (2, 32, 0) + app->actions = g_simple_action_group_new(); +#endif + /* reload action */ action = g_simple_action_new("reload", NULL); g_signal_connect(action, "activate", G_CALLBACK(cb_xfdesktop_application_reload), app); - g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(action)); + xfdesktop_application_add_action(app, G_ACTION(action)); g_object_unref(action); /* quit action */ action = g_simple_action_new("quit", NULL); g_signal_connect(action, "activate", G_CALLBACK(cb_xfdesktop_application_quit), app); - g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(action)); + xfdesktop_application_add_action(app, G_ACTION(action)); g_object_unref(action); /* menu action, parameter pops up primary (TRUE) or windowlist menu */ action = g_simple_action_new("menu", G_VARIANT_TYPE_BOOLEAN); g_signal_connect(action, "activate", G_CALLBACK(cb_xfdesktop_application_menu), app); - g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(action)); + xfdesktop_application_add_action(app, G_ACTION(action)); g_object_unref(action); /* arrange action */ action = g_simple_action_new("arrange", NULL); g_signal_connect(action, "activate", G_CALLBACK(cb_xfdesktop_application_arrange), app); - g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(action)); + xfdesktop_application_add_action(app, G_ACTION(action)); g_object_unref(action); + +#if !GLIB_CHECK_VERSION (2, 32, 0) + g_application_set_action_group(G_APPLICATION(app), (GActionGroup*)app->actions); +#endif } static void _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits