summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/daemon/daemon.c48
1 files changed, 19 insertions, 29 deletions
diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c
index 473a598..7f4516f 100644
--- a/src/daemon/daemon.c
+++ b/src/daemon/daemon.c
@@ -367,11 +367,11 @@ _gtk_get_monitor_num (GdkMonitor *monitor)
return -1;
}
-static void create_stack_for_monitor(NotifyDaemon* daemon, GdkScreen* screen, GdkMonitor *monitor_num)
+static void create_stack_for_monitor(NotifyDaemon* daemon, GdkScreen* screen, GdkMonitor *monitor_num, int num)
{
NotifyScreen* nscreen = daemon->screen;
- nscreen->stacks[_gtk_get_monitor_num(monitor_num)] = notify_stack_new(daemon, screen, monitor_num, daemon->stack_location);
+ nscreen->stacks[num] = notify_stack_new(daemon, screen, monitor_num, daemon->stack_location);
}
static void on_screen_monitors_changed(GdkScreen* screen, NotifyDaemon* daemon)
@@ -461,7 +461,7 @@ static void create_stacks_for_screen(NotifyDaemon* daemon, GdkScreen *screen)
for (i = 0; i < nscreen->n_stacks; i++)
{
- create_stack_for_monitor(daemon, screen, gdk_display_get_monitor (display, i));
+ create_stack_for_monitor(daemon, screen, gdk_display_get_monitor (display, i), i);
}
}
@@ -1840,17 +1840,10 @@ static gboolean notify_daemon_notify_handler(NotifyDaemonNotifications *object,
monitor_id = gdk_display_get_monitor (gdk_display_get_default(), (int) daemon->screen->n_stacks - 1);
}
- if (monitor_id != NULL && _gtk_get_monitor_num (monitor_id) >= daemon->screen->n_stacks)
+ int mon_num = monitor_id != NULL ? _gtk_get_monitor_num (monitor_id) : -1;
+ if (mon_num >= 0 && mon_num < (int) daemon->screen->n_stacks)
{
- /* screw it - dump it on the last one we'll get
- a monitors-changed signal soon enough*/
- monitor_id = gdk_display_get_monitor (gdk_display_get_default(), (int) daemon->screen->n_stacks - 1);
- }
-
- /* If we still don't have a valid monitor, something is seriously wrong */
- if (monitor_id != NULL && daemon->screen->n_stacks > 0)
- {
- notify_stack_add_window (daemon->screen->stacks[_gtk_get_monitor_num (monitor_id)], nw, new_notification);
+ notify_stack_add_window (daemon->screen->stacks[mon_num], nw, new_notification);
}
}
@@ -1950,25 +1943,22 @@ static gboolean notify_daemon_close_notification_handler(NotifyDaemonNotificatio
static gboolean notify_daemon_get_capabilities( NotifyDaemonNotifications *object, GDBusMethodInvocation *invocation)
{
- GVariantBuilder *builder;
- GVariant *value;
-
- builder = g_variant_builder_new (G_VARIANT_TYPE ("as"));
- g_variant_builder_add (builder, "s", "actions");
- g_variant_builder_add (builder, "s", "action-icons");
- g_variant_builder_add (builder, "s", "body");
- g_variant_builder_add (builder, "s", "body-hyperlinks");
- g_variant_builder_add (builder, "s", "body-markup");
- g_variant_builder_add (builder, "s", "icon-static");
- g_variant_builder_add (builder, "s", "sound");
- g_variant_builder_add (builder, "s", "persistence");
- value = g_variant_new ("as", builder);
- g_variant_builder_unref (builder);
+ static const gchar *const capabilities[] = {
+ "actions",
+ "action-icons",
+ "body",
+ "body-hyperlinks",
+ "body-markup",
+ "icon-static",
+ "sound",
+ "persistence",
+ NULL
+ };
+
notify_daemon_notifications_complete_get_capabilities (
object,
invocation,
- (const gchar* const *)g_variant_dup_strv (value, NULL));
- g_variant_unref (value);
+ capabilities);
return TRUE;
}