Bug 321611 - hide "On All Desktop" window button when virtual.desktops=1
Summary: hide "On All Desktop" window button when virtual.desktops=1
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: 4.90.1
Platform: Archlinux Linux
: NOR wishlist
Target Milestone: 5
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/116...
Depends on:
Reported: 2013-06-25 20:33 UTC by rockonthemoonfm
Modified: 2014-03-05 12:05 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.0.0
mgraesslin: ReviewRequest+


Note You need to log in before you can comment on or make changes to this bug.
Description rockonthemoonfm 2013-06-25 20:33:46 UTC
Last KDE releases has no virtual desktops enabled by default, thus pager is hidden.
On the other hand, we tend to encourage the use of Activities as the most productive workflow, thus activities button is found on the panel by default.

Now, having a "On all Desktop" button shown by default on window decorations is idiosyncratic if there are no virtual desktops enabled by default and the project tend to push for Activities.

Another word could be spent on other points:
- window decoration top border is enough cluttered by 6 buttons by default: Window menu;On all desktops;Help;Minimize;Maximize;Close (1 is not enough, but 3 do well the daily job)
- the button symbol is not explaining clearly its function, especially when its activation produce no visible changes.

Reproducible: Always

Expected Results:  
"On all desktops" window button is removed; window decoration top border is less cluttered; no uncertainty-feeding to the user ; advanced users can always enable virtual desktops and "On all desktops" window button.
Comment 1 Thomas Lübking 2013-06-25 20:56:23 UTC

commit 47abb223a1f89c77ebad49192f0096d4d9b52760
Author: Aaron Seigo <aseigo@kde.org>
Date:   Tue Apr 26 22:28:19 2011 +0200

    default to a single desktop


I assume this item ("kwin button defaults") will either have to move to the forum.kde.org brainstorm or kde-core-devel, esp. since "3 buttons" (close, min, max) might have implications on the button position and order as well.

About clutter:
I invite every decoration to adapt the multibutton approach of the Bespin decoration ;-)

In general, please do not collect bugs.
-> For concerns about the button design, please file a bug against the oxygen decoration.
Comment 2 rockonthemoonfm 2013-06-25 21:21:39 UTC
"Last KDE releases" !

I know, the 3 buttons thing is no bug matter but forum/kde-usability list. I was just scratching an itch ;)
My real concern here is the presence of "on all desktop" button by default  when there is only one desktop by default and activities are encouraged. 
You know, you press it and if it does nothing it means nothing. Probably user thinks something is not working.
Comment 3 rockonthemoonfm 2013-11-13 21:05:27 UTC
so I changed bug Title and magic wish.

Let's consider that:
- there is only one virtual desktop active by default, so no OAD button is needed
- we want virtual desktops users having OSD button by default 
- Virtual Desktop Switcher widget is active by default and auto-hides when it is not needed (only 1 desktop in activity)

so to give an half haphazard solution :)

 > let's make OAD button auto-hide when only one virtual desktop is present
Comment 4 Martin Flöser 2013-11-14 06:12:16 UTC
this sounds like a good suggestion -> CONFIRMED
Comment 5 Martin Flöser 2014-03-05 12:05:48 UTC
Git commit 337afd0eec40bed884242b886266f77067f79dc5 by Martin Gräßlin.
Committed on 26/02/2014 at 10:26.
Pushed by graesslin into branch 'master'.

Hide the OnAllDesktops button if there is only one virtual desktop

In KCommonDecoration the OnAllDesktops button gets hidden or shown
depending on the number of desktops. For that KDecoration is extended
by a new property which delegates to the bridge to return whether
onAllDesktops is available. In KWin Core this is implemented using
the number of desktops.
FIXED-IN: 5.0.0
REVIEW: 116076

M  +6    -0    kwin/bridge.cpp
M  +1    -0    kwin/bridge.h
M  +9    -0    kwin/client.cpp
M  +1    -0    kwin/client.h
M  +5    -0    kwin/kcmkwin/kwindecoration/preview.cpp
M  +1    -0    kwin/kcmkwin/kwindecoration/preview.h
M  +13   -2    kwin/libkdecorations/kcommondecoration.cpp
M  +5    -0    kwin/libkdecorations/kdecoration.cpp
M  +15   -0    kwin/libkdecorations/kdecoration.h
M  +1    -0    kwin/libkdecorations/kdecorationbridge.h