app: Don't rely on app menu to check for GtkApplications

As the app menu is being phased out, it is no longer a good indicator
for GtkApplications. Instead, base the check directly on the appropriate
D-Bus properties.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/624
This commit is contained in:
Florian Müllner 2018-10-04 19:11:05 +02:00
parent 62a3b9e6a3
commit e355756758

View File

@ -602,6 +602,7 @@ gboolean
shell_app_can_open_new_window (ShellApp *app) shell_app_can_open_new_window (ShellApp *app)
{ {
ShellAppRunningState *state; ShellAppRunningState *state;
MetaWindow *window;
/* Apps that are not running can always open new windows, because /* Apps that are not running can always open new windows, because
activating them would open the first one */ 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 Activate() knows nothing about the other instances, so it will show a
new window. 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; if (meta_window_get_gtk_application_id (window) != NULL)
application_id = meta_window_get_gtk_application_id (state->windows->data);
if (application_id != NULL)
return FALSE; return FALSE;
else else
return TRUE; return TRUE;