bloatpad: fix the action associated with the notification

Notifications can only be associated with application actions,
but clear is a window action. Introduce a "clear-all" action
that forwards to clear on all windows.

https://bugzilla.gnome.org/show_bug.cgi?id=721633
This commit is contained in:
Giovanni Campagna 2014-01-06 14:05:59 +01:00
parent d28ca4cdce
commit f7c5dfdeef

View File

@ -137,6 +137,18 @@ activate_clear (GSimpleAction *action,
gtk_text_buffer_set_text (gtk_text_view_get_buffer (text), "", -1);
}
static void
activate_clear_all (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
GtkApplication *app = GTK_APPLICATION (user_data);
GList *iter;
for (iter = gtk_application_get_windows (app); iter; iter = iter->next)
g_action_group_activate_action (iter->data, "clear", NULL);
}
static void
text_buffer_changed_cb (GtkTextBuffer *buffer,
BloatPad *app)
@ -170,7 +182,7 @@ text_buffer_changed_cb (GtkTextBuffer *buffer,
GNotification *n;
n = g_notification_new ("Three lines of text");
g_notification_set_body (n, "Keep up the good work!");
g_notification_add_button (n, "Start over", "app.clear");
g_notification_add_button (n, "Start over", "app.clear-all");
g_application_send_notification (G_APPLICATION (app), "three-lines", n);
g_object_unref (n);
}
@ -450,7 +462,8 @@ static GActionEntry app_entries[] = {
{ "about", about_activated, NULL, NULL, NULL },
{ "quit", quit_activated, NULL, NULL, NULL },
{ "edit-accels", edit_accels },
{ "time-active", NULL, NULL, "false", time_active_changed }
{ "time-active", NULL, NULL, "false", time_active_changed },
{ "clear-all", activate_clear_all }
};
static void