Bug 495537 - Krunner/Yakuake opens on screen with notifications after they are shown, instead on screen with last focused window and mouse cursor
Summary: Krunner/Yakuake opens on screen with notifications after they are shown, inst...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: multi-screen (show other bugs)
Version: master
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: multiscreen, usability
Depends on:
Blocks:
 
Reported: 2024-10-29 17:24 UTC by Jure Repinc
Modified: 2024-11-08 06:19 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.2.4
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jure Repinc 2024-10-29 17:24:21 UTC
SUMMARY
I am using Yakuke and have set it to open with F12 on the screen where mouse cursor is. I also have two monitors one smaller on the left (mostly just using it for HW monitoring plasmoids, chat windows contacts list, system tray and where I have set notifications to appear) and one larger primary one on the right (where I have most of my windows open and where I work most of the time). I have noticed that after a notification appears it somehow changes the active/focused screen. So instead of Yakuake opening on the big screen on the right where I had it open the last time and where the active window and mouse are; it opens on the smaller left screen where notification appeared. I have to click the mouse on the window on the right monitor again so that Yakuake opens on this right large screen again (the first time it does how up it has geometry/size of the smaller screen, and only the second time I make it shown it fills the whole larger screen).

Same thing is happening with showing KRuner after pressing Alt+Space Keyboard shortcut to show it.

STEPS TO REPRODUCE
1. Have Yakukae open on screen with mouse cursor and make it so that it fills the entire screen. Have apps and mose on one screen and notification shown on another screen.
2. Work with mouse and focused application on one screen and press F12 to show Yakuake window and hide it again.
3. Wait until a notification is shown on another screen
4. Press F12 to show Yakuake again

OBSERVED RESULT
Yakuake opens on the screen where notification was shown and not on the one with mouse and active window.

EXPECTED RESULT
Yakuake should open where it last opened on the screen with active window and mouse cursor.

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20241025
KDE Plasma Version: 6.2.80
KDE Frameworks Version: 6.8.0
Qt Version: 6.8.0
Kernel Version: 6.11.5-1-default (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 7600 6-Core Processor
Memory: 31.1 GiB of RAM
Graphics Processor: AMD Radeon RX 7900 GRE (Mesa 24.1.7)
Comment 1 Jure Repinc 2024-10-31 14:20:09 UTC
I remembered I have changed the notification settings to set to display notification on top of fullscreen windows, so I tried to disable this one and change it to default, but unfortunately this appears to not change anything and bug is there in any case.
Comment 2 Zamundaaa 2024-11-04 23:06:09 UTC
Can confirm, and I see the cause... plasmashell requests activating the notification window, so KWin activates it and switches the active output to the one with the notification on it.
Comment 3 Bug Janitor Service 2024-11-06 12:47:48 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6739
Comment 4 Vlad Zahorodnii 2024-11-06 15:31:43 UTC
Git commit 1e45a2d19bdab578155b5e5ef2c0f7bb99a440c8 by Vlad Zahorodnii.
Committed on 06/11/2024 at 15:31.
Pushed by vladz into branch 'master'.

Synchronize _q_showWithoutActivating with the panel takes focus property

When a window is shown, QtWayland will attempt to activate the window
unless it has a special type or the _q_showWithoutActivating property
is set to true.

If that property is not set, it can result in providing conflicting input
hints to the compositor, e.g. the compositor is told that the given
surface accepts no focus and yet it's asked to activate it.

M  +2    -0    src/plasmaquick/plasmashellwaylandintegration.cpp

https://invent.kde.org/plasma/libplasma/-/commit/1e45a2d19bdab578155b5e5ef2c0f7bb99a440c8
Comment 5 Zamundaaa 2024-11-07 15:03:14 UTC
Git commit 71c9fd7bc0b9834966750d28ac69501ad69899f9 by Xaver Hugl.
Committed on 07/11/2024 at 14:51.
Pushed by zamundaaa into branch 'master'.

activation: don't activate windows that don't accept keyboard input

It can change the active output without user interaction

M  +1    -1    src/activation.cpp

https://invent.kde.org/plasma/kwin/-/commit/71c9fd7bc0b9834966750d28ac69501ad69899f9
Comment 6 Zamundaaa 2024-11-07 15:31:02 UTC
Git commit 1518659f96b39056bd073efd75eaf81a14169a49 by Xaver Hugl.
Committed on 07/11/2024 at 15:06.
Pushed by zamundaaa into branch 'Plasma/6.2'.

activation: don't activate windows that don't accept keyboard input

It can change the active output without user interaction


(cherry picked from commit 71c9fd7bc0b9834966750d28ac69501ad69899f9)

Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>

M  +1    -1    src/activation.cpp

https://invent.kde.org/plasma/kwin/-/commit/1518659f96b39056bd073efd75eaf81a14169a49
Comment 7 Jure Repinc 2024-11-08 06:19:26 UTC
Just updated from the master branch and can confirm it all appears fine now. Thanks.