Transition the ShellApp state when ready.
shell_app_state_transition emits a signal, so invoke it only when ready, or signal handlers will see an object which is in an invalid state. https://bugzilla.gnome.org/show_bug.cgi?id=632501
This commit is contained in:
parent
8798ec653d
commit
54e3a54489
@ -780,9 +780,6 @@ _shell_app_add_window (ShellApp *app,
|
|||||||
|
|
||||||
g_object_freeze_notify (G_OBJECT (app));
|
g_object_freeze_notify (G_OBJECT (app));
|
||||||
|
|
||||||
if (app->state != SHELL_APP_STATE_STARTING)
|
|
||||||
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
|
||||||
|
|
||||||
if (!app->running_state)
|
if (!app->running_state)
|
||||||
create_running_state (app);
|
create_running_state (app);
|
||||||
|
|
||||||
@ -795,6 +792,9 @@ _shell_app_add_window (ShellApp *app,
|
|||||||
if (user_time > app->running_state->last_user_time)
|
if (user_time > app->running_state->last_user_time)
|
||||||
app->running_state->last_user_time = user_time;
|
app->running_state->last_user_time = user_time;
|
||||||
|
|
||||||
|
if (app->state != SHELL_APP_STATE_STARTING)
|
||||||
|
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
||||||
|
|
||||||
g_object_thaw_notify (G_OBJECT (app));
|
g_object_thaw_notify (G_OBJECT (app));
|
||||||
|
|
||||||
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
|
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user