1
1
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
2
index c2932ee..c3bd534 100644
2
index c2932ee..88ea9c5 100644
3
3
--- a/gnome-panel/applet.c
4
4
+++ b/gnome-panel/applet.c
5
@@ -842,6 +842,13 @@ panel_applet_queue_initial_unhide_toplevels (gpointer user_data)
7
#include <libpanel-util/panel-show.h>
9
+#include <dbus/dbus-glib.h>
10
+#include <dbus/dbus-glib-bindings.h>
12
#include "button-widget.h"
15
@@ -828,6 +831,43 @@ panel_applet_on_load_queue (const char *id)
20
+signal_boot_curtain (void)
22
+ DBusGConnection *connection;
24
+ GError *error = NULL;
26
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
30
+ g_warning ("%s", error->message);
31
+ g_error_free(error);
35
+ /* Get the current session object */
36
+ proxy = dbus_g_proxy_new_for_name (connection,
37
+ "com.ubuntu.BootCurtain",
38
+ "/com/ubuntu/BootCurtain",
39
+ "com.ubuntu.BootCurtain");
43
+ g_warning ("Unable to connect to BootCurtain");
44
+ dbus_g_connection_unref (connection);
48
+ dbus_g_proxy_call_no_reply (proxy,
50
+ G_TYPE_STRING, "gnome-panel",
53
+ g_object_unref (proxy);
56
/* This doesn't do anything if the initial unhide already happened */
58
panel_applet_queue_initial_unhide_toplevels (gpointer user_data)
59
@@ -842,6 +882,8 @@ panel_applet_queue_initial_unhide_toplevels (gpointer user_data)
6
60
for (l = panel_toplevel_list_toplevels (); l != NULL; l = l->next)
7
61
panel_toplevel_queue_initial_unhide ((PanelToplevel *) l->data);
9
+ g_spawn_command_line_async("dbus-send "
10
+ "--system --type=method_call "
11
+ "--dest=com.ubuntu.BootCurtain "
12
+ "/com/ubuntu/BootCurtain "
13
+ "com.ubuntu.BootCurtain.SignalLoaded string:gnome-panel",
63
+ signal_boot_curtain ();
68
diff --git a/gnome-panel/main.c b/gnome-panel/main.c
69
index 16b4163..4405b13 100644
70
--- a/gnome-panel/main.c
71
+++ b/gnome-panel/main.c
74
#include <libpanel-util/panel-cleanup.h>
76
+#include <dbus/dbus-glib.h>
77
+#include <dbus/dbus-glib-bindings.h>
79
#include "panel-gconf.h"
80
#include "panel-profile.h"
81
#include "panel-config-global.h"
82
@@ -46,6 +49,8 @@ static const GOptionEntry options[] = {
86
+static void setup_boot_curtain (void);
89
main (int argc, char **argv)
91
@@ -77,6 +82,8 @@ main (int argc, char **argv)
95
+ setup_boot_curtain ();
97
panel_action_protocol_init ();
98
panel_multiscreen_init ();
99
panel_init_stock_icons_and_items ();
100
@@ -117,3 +124,40 @@ main (int argc, char **argv)
106
+setup_boot_curtain (void)
108
+ DBusGConnection *connection;
110
+ GError *error = NULL;
112
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
116
+ g_warning ("%s", error->message);
117
+ g_error_free(error);
121
+ /* Get the current session object */
122
+ proxy = dbus_g_proxy_new_for_name (connection,
123
+ "com.ubuntu.BootCurtain",
124
+ "/com/ubuntu/BootCurtain",
125
+ "com.ubuntu.BootCurtain");
129
+ g_warning ("Unable to connect to BootCurtain");
130
+ dbus_g_connection_unref (connection);
134
+ dbus_g_proxy_call_no_reply (proxy,
136
+ G_TYPE_STRING, "gnome-panel",
139
+ g_object_unref (proxy);