all repos — openbox @ ec67e96583fe0a1f9a1ef2f75b9293117c115319

openbox fork - make it a bit more like ryudo

make startup notification a little more robust. obconf is just broken, between
the application and it's .desktop.
Dana Jansens danakj@orodu.net
commit

ec67e96583fe0a1f9a1ef2f75b9293117c115319

parent

3f7ad89510b3182d69a9543f78637619eb13219f

3 files changed, 10 insertions(+), 7 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -299,7 +299,7 @@

client_get_all(self); client_restore_session_state(self); - sn_app_started(self->class); + sn_app_started(self->startup_id, self->class); /* update the focus lists, do this before the call to change_state or it can end up in the list twice! */
M openbox/startupnotify.copenbox/startupnotify.c

@@ -164,8 +164,8 @@ switch (sn_monitor_event_get_type(ev)) {

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 @@ if (change)

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;
M openbox/startupnotify.hopenbox/startupnotify.h

@@ -27,7 +27,7 @@

gboolean sn_app_starting(); /*! Notify that an app has started */ -void sn_app_started(gchar *wmclass); +void sn_app_started(const gchar *id, const gchar *wmclass); /*! Get the desktop requested via the startup-notiication protocol if one was requested */