aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2012-11-26 13:36:43 +0100
committerLars Uebernickel <lars.uebernickel@canonical.com>2012-11-26 13:36:43 +0100
commiteeb48cb2ecc059080ef6c079d1527eebe88da42f (patch)
tree35c15bff3a0675438fee9fba82e35f5f111165db
parent629b28e7f86d13eb78274c51a9164bdcac4e2cd7 (diff)
downloadayatana-indicator-messages-eeb48cb2ecc059080ef6c079d1527eebe88da42f.tar.gz
ayatana-indicator-messages-eeb48cb2ecc059080ef6c079d1527eebe88da42f.tar.bz2
ayatana-indicator-messages-eeb48cb2ecc059080ef6c079d1527eebe88da42f.zip
ImApplicationList: give message and source actions a boolean parameter
The application will only be notified about the activation when this parameter is true. False denotes a dismissed item.
-rw-r--r--src/im-application-list.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/im-application-list.c b/src/im-application-list.c
index dc8c146..644051f 100644
--- a/src/im-application-list.c
+++ b/src/im-application-list.c
@@ -105,10 +105,13 @@ im_application_list_source_activated (GSimpleAction *action,
source_id = g_action_get_name (G_ACTION (action));
- indicator_messages_application_call_activate_source (app->proxy,
- source_id,
- app->cancellable,
- NULL, NULL);
+ if (g_variant_get_boolean (parameter))
+ {
+ indicator_messages_application_call_activate_source (app->proxy,
+ source_id,
+ app->cancellable,
+ NULL, NULL);
+ }
im_application_list_source_removed (app, source_id);
}
@@ -132,10 +135,13 @@ im_application_list_message_activated (GSimpleAction *action,
message_id = g_action_get_name (G_ACTION (action));
- indicator_messages_application_call_activate_message (app->proxy,
- message_id,
- app->cancellable,
- NULL, NULL);
+ if (g_variant_get_boolean (parameter))
+ {
+ indicator_messages_application_call_activate_message (app->proxy,
+ message_id,
+ app->cancellable,
+ NULL, NULL);
+ }
im_application_list_message_removed (app, message_id);
}
@@ -357,7 +363,7 @@ im_application_list_source_added (Application *app,
&id, &label, &iconstr, &count, &time, &string, &draws_attention);
state = g_variant_new ("(uxsb)", count, time, string, draws_attention);
- action = g_simple_action_new_stateful (id, NULL, state);
+ action = g_simple_action_new_stateful (id, G_VARIANT_TYPE_BOOLEAN, state);
g_signal_connect (action, "activate", G_CALLBACK (im_application_list_source_activated), app);
g_simple_action_group_insert (app->actions, G_ACTION (action));
@@ -440,7 +446,7 @@ im_application_list_message_added (Application *app,
app_icon = g_app_info_get_icon (G_APP_INFO (app->info));
app_iconstr = app_icon ? g_icon_to_string (app_icon) : NULL;
- action = g_simple_action_new (id, NULL);
+ action = g_simple_action_new (id, G_VARIANT_TYPE_BOOLEAN);
g_signal_connect (action, "activate", G_CALLBACK (im_application_list_message_activated), app);
g_simple_action_group_insert (G_SIMPLE_ACTION_GROUP (app->actions), G_ACTION (action));