X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain.c;fp=src%2Fmain.c;h=0a64f249c49aa4df02edd1e3e4585da806692786;hb=7a2f1b1be0e6104b6f87fd4011f852c0ffeab8a0;hp=5686f5be40f37c5e2cd1df0e52bbfa462d73b214;hpb=c5c0a28bbee0995ba7c45d6ff78916960188a761;p=psensor.git diff --git a/src/main.c b/src/main.c index 5686f5b..0a64f24 100644 --- a/src/main.c +++ b/src/main.c @@ -305,25 +305,20 @@ static struct option long_options[] = { {NULL, 0, NULL, 0} }; -static gboolean initial_window_show(gpointer data) +static gboolean check_ui_visible(gpointer data) { struct ui_psensor *ui; - log_debug("initial_window_show()"); - ui = (struct ui_psensor *)data; + log_debug("check_ui_visible()"); log_debug("is_status_supported: %d", is_status_supported()); log_debug("is_appindicator_supported: %d", is_appindicator_supported()); - log_debug("hide_on_startup: %d", ui->config->hide_on_startup); - if (!ui->config->hide_on_startup - || (!is_appindicator_supported() && !is_status_supported())) + if (!is_appindicator_supported() && !is_status_supported()) ui_window_show(ui); - ui_window_update(ui); - return FALSE; } @@ -535,16 +530,16 @@ int main(int argc, char **argv) gdk_notify_startup_complete(); - /* - * hack, did not find a cleaner solution. - * wait 30s to ensure that the status icon is attempted to be - * drawn before determining whether the main window must be - * show. + log_debug("hide_on_startup: %d", ui.config->hide_on_startup); + if (ui.config->hide_on_startup) + /* Wait 30s to allow attempt to show status icon or other UI, + * then check whether any UI is accessible. If not, then main + * window must be shown despite hide_on_startup preference. + * There may be a cleaner way to deal with this. */ - if (ui.config->hide_on_startup) - g_timeout_add(30000, (GSourceFunc)initial_window_show, &ui); + g_timeout_add(30000, (GSourceFunc)check_ui_visible, &ui); else - initial_window_show(&ui); + ui_window_show(&ui); /* main loop */ gtk_main();