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.

Reply via email to