https://bugs.kde.org/show_bug.cgi?id=460961
Bug ID: 460961 Summary: WISHLIST: Always treat unhidden Panel as an "active window" for the purposes of mouse click -> inner window action translation Classification: Plasma Product: kwin Version: unspecified Platform: Archlinux OS: Linux Status: REPORTED Severity: wishlist Priority: NOR Component: input Assignee: kwin-bugs-n...@kde.org Reporter: spill...@acm.org Target Milestone: --- SUMMARY The "Inactive Inner Window Actions" settings group (under Window Management -> Window Behavior -> Window Actions within the systemsettings utility) allows the user to configure what will happen when a mouse click or scroll-wheel action is applied over a window other than the one currently holding focus. In particular, selecting the "Activate and raise" option instead of "Activate, raise, and pass click" allows the user to change the focus by clicking anywhere within the inactive window, without risking accidentally performing some unintended action if the click happens to be over a control widget in that window (which may be partially obscured). There is a similar "Activate" option to shift only the input focus, without affecting the window arrangement. In current KDE releases the panel(s) and all of their nested widgets are treated as Inactive Windows for input passing purposes whenever any normal application window holds the focus, so panel widgets do not function as intended when one of these options is selected. For example, clicking on a task switcher widget opens a small preview pane of the selected application window, but does not immediately switch focus to that application until the user clicks again in the preview pane. The application launcher menu becomes practically inaccessible; clicking on its icon raises a tool tip explaining what the "Application Launcher" is supposed to do, but there's nowhere to send a second click to actually activate the menu system. I think this behavior is wrong (and likely surprising to many inexperienced users) because the Panel is conceptually (from a UX standpoint, not any internal technical detail) different from other applications. In the default Plasma configuration, the Panel is always-visible, with other windows normally precluded from overlapping it. It is supposed to offer at-a-glance information and one-click access to basic desktop functions, the latter of which goes away when inactive window clicks are not configured to a passed-through option. This reduces the utility of the Inactive Inner Window Actions options, which have a practical purpose but become much less attractive if the user might have to give up easy access (apart from keyboard shortcuts) to common features like the application launcher and task switcher. STEPS TO REPRODUCE 1. Open the KDE system settings utility. 2. Navigate to Window Management -> Window Behavior -> Window Actions. 3. Within the "Inactive Inner Window Actions" settings group, set the left-click action to "Activate" or "Activate and raise". 4. Click "Apply" on the settings panel. 5. Left-click on your application launcher button and observe that you cannot open the launcher menu. 6. Left-click on any task switcher button and observe that a preview pane pops up, but the focus and window order do not shift to the selected application. 7. Left-click on that preview pane to actually complete the switch (now a two-click process, which was previously one). 8. Left-click on other panel widgets (e.g. volume control, network status, etc.) and observe that they too are inaccessible, similar to the application launcher menu. 9. Restore the left-click Inactive Inner Window Action to "Activate, raise, and pass click" for the best Plasma experience. PROPOSAL When a mouse click event is received while the cursor is above a window of application class org.kde.plasmashell, always pass the click event through to that window, along with any other actions that may be configured in Inactive Inner Window Actions. Specifically, treat a selection of "Activate" as "Activate and pass click", and a selection of "Activate and raise" as "Activate, raise, and pass click". Optionally offer a checkbox on the Window Actions settings dialog to "Always pass through clicks to plasmashell windows" to control this behavior, with a default value of activated. Optionally, this new behavior could be restricted only to plasmashell windows specifically belonging to the panel (which would be sufficient to address all of the concerns raised in this issue), but it's unusual to have other plasmashell windows visible without holding the input focus, it seems reasonable to treat them similarly to the Panel, and simply filtering by application class permits a very straightforward implementation. EXPECTED RESULT Users concerned about inadvertently triggering an action in an inactive window can select the "Activate and raise" or "Activate" options without compromising their easy access to panel widgets. Additionally, novice users are no longer at risk of a single settings change inadvertently disabling mouse-click access to the launcher menu, volume control, etc. RELATED ISSUES https://bugs.kde.org/show_bug.cgi?id=443996 (Inner Window Actions -> "Activate and raise" [but not pass click] has no effect in focus-follows-mouse mode): this has no direct interdependence with my proposal, but indicates another use case for inhibiting click pass-through, and that the inactive inner window event options have likely not been thoroughly tested. -- You are receiving this mail because: You are watching all bug changes.