Bug 395377 - "Slide" effect not configurable in "Virtual desktop" menu
Summary: "Slide" effect not configurable in "Virtual desktop" menu
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 5.13.0
Platform: Other Linux
: NOR minor
Target Milestone: ---
Assignee: Vlad Zahorodnii
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-06-14 15:36 UTC by Markus Wallerberger
Modified: 2018-06-17 16:38 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Wallerberger 2018-06-14 15:36:14 UTC
When switching virtual desktops with the old "slide" effect enabled, panels would not slide with them.  The rewritten slide effect however slides the panels together with the windows, only to end up with the same panel.

I consider this is bad from an UI perspective: particularly when switching desktops using the Pager or the taskbar plasmoid, these applets move away from under your mouse cursor.

The relevant commit, AFAICS, is ddd406dfd91cc085a . From a quick glance on the code, it seems like the method `SlideEffect::shouldForceBackgroundContrast()` is to blame, since it the check for `w->isDock() || w->keepAbove()` was removed.

Reprodicible: Always

Steps to reproduce:
  1. Go to  `System Settings > Desktop Behaviour > Virtual Desktops`, activate the `Slide` effect in and use more than one Virtual desktop;
  2. Switch desktops.

Probably related: bug #171454
Comment 1 Markus Wallerberger 2018-06-14 15:54:17 UTC
Meh, too quick to report this.

Digging into the code, I realized there is a configuration option for this.  Strangely enough, I could not access it from the `Desktop Behaviour > Virtual Desktops` menu (the corresponding button is greyed out).

However: one *can* change this behaviour in `System Settings > Desktop Effects` directly.

I'll leave the bug open for now, because I think:

 1. the default for moving panels should be "off";

 2. the configuration for this effect should be accessible from the `Switching` menu.
Comment 2 Vlad Zahorodnii 2018-06-14 16:14:53 UTC
> When switching virtual desktops with the old "slide" effect enabled, panels would not slide with them.  The rewritten slide effect however slides the panels together with the windows, only to end up with the same panel.

Panels slide for two reasons:
* fix issues with full screen windows, see https://phabricator.kde.org/D9638;
* as I said in the diff, panels are also sliding to separate each virtual desktop as much as possible. 

> I consider this is bad from an UI perspective: particularly when switching desktops using the Pager or the taskbar plasmoid, these applets move away from under your mouse cursor.

Well, it's not possible to cover every possible use-case.

> The relevant commit, AFAICS, is ddd406dfd91cc085a . From a quick glance on the code, it seems like the method `SlideEffect::shouldForceBackgroundContrast()` is to blame, since it the check for `w->isDock() || w->keepAbove()` was removed.

shouldForceBackgroundContrast has nothing to do with sliding of panels as its name suggests. :-)
Comment 3 Vlad Zahorodnii 2018-06-14 17:05:27 UTC
Could you please update the bug report so it concerns only one issue(non-configurable slide effect in virtual desktops kcm)?
Comment 4 Vlad Zahorodnii 2018-06-17 16:38:42 UTC
Git commit 586460dbfcd0591b74d4ce2996e2634c10eb4ee8 by Vlad Zagorodniy.
Committed on 17/06/2018 at 16:38.
Pushed by vladz into branch 'master'.

[kcmkwin/kwindesktop] Make Slide effect configurable

Summary:
Even though the Slide effect has a KCM, it's not possible to configure
it [slide effect] from the virtual desktops KCM.

This change addresses the problem above.

### Before

{F5912774, layout=center, size=full}

### After

{F5912775, layout=center, size=full}

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13544

M  +12   -2    kcmkwin/kwindesktop/main.cpp

https://commits.kde.org/kwin/586460dbfcd0591b74d4ce2996e2634c10eb4ee8