mutter/src/core
Olivier Fourdan d2ca5cc26b display: Fix inconsistent behavior with demand attention
When focus stealing prevention kicks in, mutter would set the demand
attention flag on the window.

Focus stealing prevention would also prevent the window from being
raised and focused, which is expected as its precisely its purpose.

Yet, when that occurs, the user expects the window which has just been
prevented from being focused to be the next one in the MRU list, so
that pressing [Alt]-[Tab] would raise and give focus to that window.

This works fine when the window is placed on the primary monitor, but
not when placed on another monitor, in which case the window which has
been denied focus is placed ahead of the MRU list and pressing
[Alt]-[Tab] would leave the focus on the current window.

This is because of a mechanism in `meta_display_get_tab_list()` which
forces the windows with the demand attention flag set to be placed first
in the MRU list when they're placed on a workspace different from the
current one.

But because workspaces apply only to the primary monitor (by default),
the windows placed on other outputs have their workspace set to `NULL`
which forces them ahead of the MRU list by mistake.

Fix this by using the appropriate `meta_window_located_on_workspace()
function to check if the window is on another workspace.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/523
2019-04-17 18:53:04 +02:00
..
bell.c frame: Remove flashing support 2019-03-12 00:27:07 +00:00
bell.h frame: Remove flashing support 2019-03-12 00:27:07 +00:00
boxes-private.h boxes: Fix spelling in API 2019-03-17 14:12:40 +00:00
boxes.c boxes: Fix spelling in API 2019-03-17 14:12:40 +00:00
constraints.c constraints: Don't use intersection when sliding with custom rule 2019-03-17 14:12:40 +00:00
constraints.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
core.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
core.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
delete.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
display-private.h Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
display.c display: Fix inconsistent behavior with demand attention 2019-04-17 18:53:04 +02:00
edge-resistance.c Fix builds with G_DISABLE_ASSERT 2019-01-25 09:43:06 +01:00
edge-resistance.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
events.c Fix builds with G_DISABLE_ASSERT 2019-01-25 09:43:06 +01:00
events.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
frame.c frame: Remove flashing support 2019-03-12 00:27:07 +00:00
frame.h frame: Remove flashing support 2019-03-12 00:27:07 +00:00
keybindings-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
keybindings.c keybindings: Stop keybinding if a touch happens while Super is pressed 2019-04-15 11:10:47 +00:00
main-private.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
main.c x11: Require xrandr 1.5 at build time 2018-11-06 17:17:36 +01:00
meta-accel-parse.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-accel-parse.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-border.c MetaBorder: Use float constants and functions instead of double variants 2016-02-16 19:02:48 +08:00
meta-border.h Move out generic math parts out of the native barrier implementation 2016-02-16 19:02:48 +08:00
meta-close-dialog-default-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-close-dialog-default.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-close-dialog.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-fraction.c Add MetaFraction for dealing with fractions 2017-08-29 14:39:04 +08:00
meta-fraction.h Add MetaFraction for dealing with fractions 2017-08-29 14:39:04 +08:00
meta-gesture-tracker-private.h Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-gesture-tracker.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-inhibit-shortcuts-dialog-default-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-inhibit-shortcuts-dialog-default.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-inhibit-shortcuts-dialog.c core: add MetaInhibitShortcutsDialog 2017-08-02 11:58:55 +02:00
meta-launch-context.c launch-context: Swap reversed timestamp/workspace 2019-04-01 10:34:51 +00:00
meta-sound-player.c sound-player: Don't deadlock in finish_cb 2019-03-05 12:07:41 +00:00
meta-workspace-manager-private.h Move workspace related code from MetaDisplay to MetaWorkspaceManager 2018-07-06 19:47:17 +02:00
meta-workspace-manager.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
mutter.c plugin: Rename the .so file from plugin.so to libplugin.so 2018-11-06 17:17:36 +01:00
place.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
place.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
prefs.c prefs: Change default of show-fallback-app-menu 2019-03-11 23:30:10 +00:00
restart-helper.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
restart.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
stack-tracker.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
stack-tracker.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
stack.c window: Return focusable ability looking at properties only 2019-02-14 13:49:51 +01:00
stack.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
startup-notification-private.h meta, startup-notification: Make type declarations public 2019-01-24 16:38:09 +00:00
startup-notification.c core: Emit MetaStartupNotification::changed on sequence completion 2019-04-17 18:42:09 +02:00
util-private.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
util.c Fix builds with G_DISABLE_ASSERT 2019-01-25 09:43:06 +01:00
window-private.h window: Replace placement constrained bool with state 2019-03-17 14:12:40 +00:00
window.c window: Unmanage rule placed window if ending up outside of parent 2019-03-17 14:12:40 +00:00
workspace-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
workspace.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00