diff --git a/src/shell-app.c b/src/shell-app.c index 108bb4d11..c765800dc 100644 --- a/src/shell-app.c +++ b/src/shell-app.c @@ -602,6 +602,7 @@ gboolean shell_app_can_open_new_window (ShellApp *app) { ShellAppRunningState *state; + MetaWindow *window; /* Apps that are not running can always open new windows, because activating them would open the first one */ @@ -635,11 +636,13 @@ shell_app_can_open_new_window (ShellApp *app) Activate() knows nothing about the other instances, so it will show a new window. */ - if (state->remote_menu) + + window = state->windows->data; + + if (state->unique_bus_name != NULL && + meta_window_get_gtk_application_object_path (window) != NULL) { - const char *application_id; - application_id = meta_window_get_gtk_application_id (state->windows->data); - if (application_id != NULL) + if (meta_window_get_gtk_application_id (window) != NULL) return FALSE; else return TRUE;