]> Dogcows Code - chaz/openbox/blobdiff - openbox/startupnotify.c
make startup notification a little more robust. obconf is just broken, between
[chaz/openbox] / openbox / startupnotify.c
index 66258c821869d750cabd7f7d03008980cac593d8..dbb633ef17c4cafb65256669e4018bd0a8f93c10 100644 (file)
@@ -164,8 +164,8 @@ static void sn_event_func(SnMonitorEvent *ev, gpointer data)
     case SN_MONITOR_EVENT_INITIATED:
         d = wait_data_new(seq);
         sn_waits = g_slist_prepend(sn_waits, d);
-        /* 30 second timeout for apps to start */
-        ob_main_loop_timeout_add(ob_main_loop, 30 * G_USEC_PER_SEC,
+        /* 15 second timeout for apps to start */
+        ob_main_loop_timeout_add(ob_main_loop, 15 * G_USEC_PER_SEC,
                                  sn_wait_timeout, d, sn_wait_destroy);
         change = TRUE;
         break;
@@ -188,14 +188,17 @@ static void sn_event_func(SnMonitorEvent *ev, gpointer data)
         screen_set_root_cursor();
 }
 
-void sn_app_started(gchar *wmclass)
+void sn_app_started(const gchar *id, const gchar *wmclass)
 {
     GSList *it;
 
     for (it = sn_waits; it; it = g_slist_next(it)) {
         ObWaitData *d = it->data;
-        if (sn_startup_sequence_get_wmclass(d->seq) &&
-            !strcmp(sn_startup_sequence_get_wmclass(d->seq), wmclass))
+        const gchar *seqid, *seqclass;
+        seqid = sn_startup_sequence_get_id(d->seq);
+        seqclass = sn_startup_sequence_get_wmclass(d->seq);
+        if ((seqid && id && !strcmp(seqid, id)) ||
+            (seqclass && wmclass && !strcmp(seqclass, wmclass)))
         {
             sn_startup_sequence_complete(d->seq);
             break;
This page took 0.020172 seconds and 4 git commands to generate.