summaryrefslogtreecommitdiff
path: root/openbox/screen.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-28 20:03:57 +0000
committerDana Jansens <danakj@orodu.net>2007-05-28 20:03:57 +0000
commitb30380700fed5636523bc67a24268c200431fdc4 (patch)
treee9eb0c16ff0c4691c602ec2d439cd708a885f00f /openbox/screen.c
parent34bdcb2569868ac482467dda4e0bf165d5fbfd11 (diff)
tell the ksplash screen we've started up, through the dcop command line program, if it's around
Diffstat (limited to 'openbox/screen.c')
-rw-r--r--openbox/screen.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/openbox/screen.c b/openbox/screen.c
index e5a9af3b..f515e4ec 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -52,6 +52,7 @@
static gboolean screen_validate_layout(ObDesktopLayout *l);
static gboolean replace_wm();
+static void screen_tell_ksplash();
guint screen_num_desktops;
guint screen_num_monitors;
@@ -302,9 +303,36 @@ gboolean screen_annex()
net_supported, atom, supported, num_support);
g_free(supported);
+ screen_tell_ksplash();
+
return TRUE;
}
+static void screen_tell_ksplash()
+{
+ XEvent e;
+ const char *args[] = { "dcop", "ksplash", "ksplash",
+ "upAndRunning(QString)", "wm started", NULL };
+
+ /* tell the dcop server through the command line interface */
+ g_spawn_async(NULL, args, NULL,
+ G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+ NULL, NULL, NULL, NULL);
+
+ /* i'm not sure why we do this, kwin does it, but ksplash doesn't seem to
+ hear it anyways. perhaps it is for old ksplash. or new ksplash. or
+ something. oh well. */
+ e.xclient.type = ClientMessage;
+ e.xclient.display = ob_display;
+ e.xclient.window = RootWindow(ob_display, ob_screen);
+ e.xclient.message_type =
+ XInternAtom(ob_display, "_KDE_SPLASH_PROGRESS", False );
+ e.xclient.format = 8;
+ strcpy(e.xclient.data.b, "wm started");
+ XSendEvent(ob_display, RootWindow(ob_display, ob_screen),
+ False, SubstructureNotifyMask, &e );
+}
+
void screen_startup(gboolean reconfig)
{
gchar **names = NULL;