GNOME Bugzilla – Bug 621083
overview doesn't work, when nauitilus isn't draw desktop & any application run
Last modified: 2010-06-16 21:47:45 UTC
We use 'switch-workspace' signal of window_manager to detect workspace switch. When there hasn't any window (including desktop window), signal doesn't emit.
We (ab)use the switch-workspace callback that is supposed to be used for effects for this. In mutter-plugin-manager.c:mutter_plugin_manager_switch_workspace we do: --------- if (!mutter_plugin_disabled (plugin) && (mutter_plugin_features (plugin) & MUTTER_PLUGIN_SWITCH_WORKSPACE) && (actors && *actors)) { --------- So when there are no windows (no desktop window and no other open application) the test "(actors && *actors)" fails so we never call klass->switch_workspace which in gnome-shell-plugin.c calls _shell_wm_switch_workspace and than shell-wm.c:_shell_wm_switch_workspace which is supposed to emit the signal. We should probably use MetaScreen::workspace-switched instead for this purpose.
For the record there is a mutter bug for this issue (which I did not notice): https://bugzilla.gnome.org/show_bug.cgi?id=621082
(In reply to comment #2) > For the record there is a mutter bug for this issue (which I did not notice): > https://bugzilla.gnome.org/show_bug.cgi?id=621082 Seems the bug is already marked as dependency so feel free to ignore both comments; sorry for the noise.
Created attachment 163306 [details] [review] update GnomeShellPlugin according recent changes in MutterPlugin
Review of attachment 163306 [details] [review]: Looks good to me. One trivial comment below. Also, in Subject, 'according recent changes' should be 'according to recent changes', and 'update' should have an initial capital u - 'Update' ::: src/shell-wm.c @@ +20,3 @@ enum { + KILL_WINDOW_EFFECTS, Ordering is rather random here now, I'd move this down together with KILL_SWITCH_WORKSPACE @@ +56,3 @@ gobject_class->finalize = shell_wm_finalize; + shell_wm_signals[KILL_WINDOW_EFFECTS] = Same ordering here