[gtk+] bloatpad: fix the action associated with the notification
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] bloatpad: fix the action associated with the notification
- Date: Mon, 6 Jan 2014 15:37:14 +0000 (UTC)
commit f7c5dfdeef65948371c0211ab253eea5edeae695
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Mon Jan 6 14:05:59 2014 +0100
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
examples/bloatpad.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/examples/bloatpad.c b/examples/bloatpad.c
index 66ae90d..fc2415e 100644
--- a/examples/bloatpad.c
+++ b/examples/bloatpad.c
@@ -138,6 +138,18 @@ activate_clear (GSimpleAction *action,
}
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]