X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fstartupnotify.c;h=4c929e7eaf12c786e31fd10895f5acaef009a4c7;hb=3ae58f457bcdfa90b26dad4c9d192f045874ddae;hp=03cb752b043acb03050aef77b9a2da191ad0e79e;hpb=2442cdfd85e5229c7ee4ac49ca66a7d55ffcb919;p=chaz%2Fopenbox diff --git a/openbox/startupnotify.c b/openbox/startupnotify.c index 03cb752b..4c929e7e 100644 --- a/openbox/startupnotify.c +++ b/openbox/startupnotify.c @@ -19,15 +19,13 @@ #include "startupnotify.h" #include "gettext.h" +#include "event.h" #include #ifndef USE_LIBSN -void sn_startup(gboolean reconfig) { - /* unset this so we don't pass it on unknowingly */ - if (!reconfig) unsetenv("DESKTOP_STARTUP_ID"); -} +void sn_startup(gboolean reconfig) {} void sn_shutdown(gboolean reconfig) {} gboolean sn_app_starting() { return FALSE; } Time sn_app_started(const gchar *id, const gchar *wmclass) @@ -36,7 +34,7 @@ Time sn_app_started(const gchar *id, const gchar *wmclass) } gboolean sn_get_desktop(gchar *id, guint *desktop) { return FALSE; } void sn_setup_spawn_environment(gchar *program, gchar *name, - gchar *icon_name, gint desktop, Time time) {} + gchar *icon_name, gint desktop) {} void sn_spawn_cancel() {} #else @@ -63,7 +61,7 @@ void sn_startup(gboolean reconfig) if (reconfig) return; /* unset this so we don't pass it on unknowingly */ - unsetenv("DESKTOP_STARTUP_ID"); + putenv("DESKTOP_STARTUP_ID"); sn_display = sn_display_new(ob_display, NULL, NULL); sn_context = sn_monitor_context_new(sn_display, ob_screen, @@ -108,7 +106,7 @@ static SnStartupSequence* sequence_find(const gchar *id) return ret; } -gboolean sn_app_starting() +gboolean sn_app_starting(void) { return sn_waits != NULL; } @@ -140,9 +138,9 @@ static void sn_event_func(SnMonitorEvent *ev, gpointer data) case SN_MONITOR_EVENT_INITIATED: sn_startup_sequence_ref(seq); sn_waits = g_slist_prepend(sn_waits, seq); - /* 30 second timeout for apps to start if the launcher doesn't + /* 20 second timeout for apps to start if the launcher doesn't have a timeout */ - ob_main_loop_timeout_add(ob_main_loop, 30 * G_USEC_PER_SEC, + ob_main_loop_timeout_add(ob_main_loop, 20 * G_USEC_PER_SEC, sn_wait_timeout, seq, g_direct_equal, (GDestroyNotify)sn_startup_sequence_unref); @@ -231,8 +229,7 @@ static gboolean sn_launch_wait_timeout(gpointer data) } void sn_setup_spawn_environment(gchar *program, gchar *name, - gchar *icon_name, gint desktop, - Time time) + gchar *icon_name, gint desktop) { gchar *desc; const char *id; @@ -246,26 +243,28 @@ void sn_setup_spawn_environment(gchar *program, gchar *name, sn_launcher_context_set_name(sn_launcher, name ? name : program); sn_launcher_context_set_description(sn_launcher, desc); - sn_launcher_context_set_icon_name(sn_launcher, icon_name ? icon_name : program); + sn_launcher_context_set_icon_name(sn_launcher, icon_name ? + icon_name : program); sn_launcher_context_set_binary_name(sn_launcher, program); if (desktop >= 0 && (unsigned) desktop < screen_num_desktops) sn_launcher_context_set_workspace(sn_launcher, (signed) desktop); - sn_launcher_context_initiate(sn_launcher, "openbox", program, time); + sn_launcher_context_initiate(sn_launcher, "openbox", program, + event_curtime); id = sn_launcher_context_get_startup_id(sn_launcher); - /* 30 second timeout for apps to start */ + /* 20 second timeout for apps to start */ sn_launcher_context_ref(sn_launcher); - ob_main_loop_timeout_add(ob_main_loop, 30 * G_USEC_PER_SEC, + ob_main_loop_timeout_add(ob_main_loop, 20 * G_USEC_PER_SEC, sn_launch_wait_timeout, sn_launcher, g_direct_equal, (GDestroyNotify)sn_launcher_context_unref); - setenv("DESKTOP_STARTUP_ID", id, TRUE); + putenv(g_strdup_printf("DESKTOP_STARTUP_ID=%s", id)); g_free(desc); } -void sn_spawn_cancel() +void sn_spawn_cancel(void) { sn_launcher_context_complete(sn_launcher); }