Bug 364483 - Wayland : Kwin's "Slide Back" effect does not work.
Summary: Wayland : Kwin's "Slide Back" effect does not work.
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.6.95
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL: https://phabricator.kde.org/D2636
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-19 08:53 UTC by tromzy
Modified: 2017-06-19 15:41 UTC (History)
0 users

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


Attachments
attachment-23502-0.html (96 bytes, text/html)
2017-03-03 16:27 UTC, Martin Flöser
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tromzy 2016-06-19 08:53:10 UTC
On Plasma 5.7 beta on Arch Linux, the "Slide Back" Kwin effect does not work at all.

Reproducible: Always

Steps to Reproduce:
1. Enable Slide Back effect
2. Open two windows
3. Switch from one to the other

Actual Results:  
Effect does not work.

Expected Results:  
It should play the Slide Back effect.
Comment 1 Martin Flöser 2016-06-20 06:41:56 UTC
You selected "wayland-generic" - are you running a Wayland session?
Comment 2 tromzy 2016-06-20 07:46:26 UTC
Oh sorry, I forgot to put "Wayland" in the bug description, but yes : the bug occurs only on Wayland. (All the bugs that I'm reporting right now are Wayland-session related).

Sorry again.
Comment 3 Martin Flöser 2016-06-20 07:54:24 UTC
ok, confirmed for Wayland. Though somehow I doubt that this works on X11. For two Xwayland windows it should work also on Wayland - even if something is incorrectly connected for Wayland windows. But that doesn't work, so I'm tempted to assume it's broken in general.
Comment 4 tromzy 2016-06-20 08:08:07 UTC
Slide Back effect works on X11 on Plasma 5.7 beta, I'm doing it right now.
Comment 5 Martin Flöser 2016-06-20 08:36:52 UTC
ok, thanks for verifying that.
Comment 6 Martin Flöser 2016-08-31 14:15:06 UTC
Found it: the internal windows were breaking the stacking order logic of slide back effect. That caused both Wayland and X11 windows not to work. Patch at https://phabricator.kde.org/D2636
Comment 7 tromzy 2016-08-31 14:28:21 UTC
That's good news ; althought I can assure you the slide back effect works perfectly on X11 on Plasma 5.7.x (any ".x" version).
Comment 8 Martin Flöser 2016-09-09 05:41:42 UTC
Git commit 8d4204ac0d1354818987c4b0fafcf7abde442626 by Martin Gräßlin.
Committed on 09/09/2016 at 05:41.
Pushed by graesslin into branch 'master'.

Remove non visible internal windows from the x stacking order

Summary:
KWin always has a few internal windows around which are not visible.
A QWindow created somewhere, but not shown. Such windows should not
be part of the stacking order.

If they are it breaks code which looks at the top most window in the
stacking order like e.g. SlidebackEffect.

This change ensures that the stacking order gets updated whenever a
ShellClient gets hidden and that internal windows with isShown being
false are excluded from the stacking order.

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

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

M  +12   -0    autotests/integration/internal_window.cpp
M  +3    -1    layers.cpp
M  +7    -0    workspace.cpp

http://commits.kde.org/kwin/8d4204ac0d1354818987c4b0fafcf7abde442626
Comment 9 tromzy 2016-09-16 07:44:11 UTC
This is not fixed in Plasma 5.8 beta on Arch linux.
Comment 10 Martin Flöser 2016-09-16 08:03:33 UTC
(In reply to tromzy from comment #9)
> This is not fixed in Plasma 5.8 beta on Arch linux.

Really? I have sliding popups working just fine on my system. Can you test whether it starts to break at a certain point. E.g. after using Alt+Tab or Present windows, etc.
Comment 11 Martin Flöser 2016-09-16 08:04:12 UTC
Can you also add the output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 12 tromzy 2016-09-16 08:05:37 UTC
This is not sliding popups ; this is the "Slide back" window effect. The window that slides behind the window you click on to get focus.
Comment 13 Martin Flöser 2016-09-16 08:07:23 UTC
sorry, I miss wrote. I meant slide back (too little sleep this night)
Comment 14 tromzy 2016-09-16 08:10:15 UTC
$ qdbus org.kde.KWin /KWin supportInformation
Informations de gestion de KWin :
Les informations suivantes doivent être utilisées lorsqu'une demande d'aide est effectuée sur « http://forum.kde.org ».
Il s'agit de fournir des informations complémentaires sur l'instance actuellement lancée, les options utilisées, le pilote OpenGL et les effets actifs.
Veuillez poster le texte d'introduction ci-dessous grâce à un service de « copier / coller » tel que « http://paste.kde.org » au lieu de coller cela directement dans le fil de discussion de la demande d'aide.

==========================

Version
=======
KWin version: 5.7.95
Qt Version: 5.7.0
Qt compile version: 5.7.0
XCB compile version: 1.12

Operation Mode: Xwayland

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_INPUT: yes
HAVE_DRM: yes
HAVE_GBM: yes
HAVE_X11_XCB: yes
HAVE_EPOXY_GLX: yes
HAVE_WAYLAND_EGL: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 11804000
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0

Decoration
==========
Plugin: org.kde.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 2
decorationButtonsRight: 6, 3, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,5,50,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 0
glSmoothScale: 2
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 112
glPlatformInterface: 2
windowsBlockCompositing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 100
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1

Screen 0:
---------
Name: KYK75156BGE unknown
Geometry: 0,0,1366x768
Refresh Rate: 60.003


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL version string: 3.0 Mesa 12.0.3
OpenGL platform interface: EGL
OpenGL shading language version string: 1.30
Driver: Intel
GPU class: Haswell
OpenGL version: 3.0
GLSL version: 1.30
Mesa version: 12.0.3
Linux kernel version: 4.7.3
Direct rendering: Requires strict binding: no
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
dimscreen
slidingpopups
kwin4_effect_login
wobblywindows
slideback
screenshot
kwin4_effect_eyeonscreen
magiclamp
kwin4_effect_translucency
coverswitch
sheet
kwin4_effect_maximize
kwin4_effect_fade
kwin4_effect_morphingpopups
kwin4_effect_dialogparent
presentwindows
highlightwindow
blur
contrast
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
dimscreen:

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

wobblywindows:
stiffness: 0.15
drag: 0.8
moveFactor: 0.1
xTesselation: 20
yTesselation: 20
minVelocity: 0
maxVelocity: 1000
stopVelocity: 0.5
minAcceleration: 0
maxAcceleration: 1000
stopAcceleration: 0.5
moveEffectEnabled: true
openEffectEnabled: false
closeEffectEnabled: false
moveWobble: true
resizeWobble: true

slideback:

screenshot:

kwin4_effect_eyeonscreen:

magiclamp:
animationDuration: 250

kwin4_effect_translucency:

coverswitch:
animationDuration: 200
animateSwitch: true
animateStart: true
animateStop: true
reflection: true
windowTitle: true
zPosition: 900
primaryTabBox: false
secondaryTabBox: false

sheet:
duration: 500

kwin4_effect_maximize:

kwin4_effect_fade:

kwin4_effect_morphingpopups:

kwin4_effect_dialogparent:

presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 150
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

contrast:

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 15 tromzy 2016-09-16 08:11:35 UTC
I just tried : I logged to my Wayland session and at first, the effect worked : I openen Dolphin and Konsole and I got the slide back effect between the two windows. But then, something weird happened : for some reason Kmail started and crashed, and then, slide back effect stopped working.
Comment 16 Martin Flöser 2016-09-16 08:32:52 UTC
all right, thx. This gives me some ideas - maybe the crashed window is still in the stacking order and prevents it from showing.

Concerning kmail: you might need to pass --platform xcb. Unfortunately kmail uses QWebEngine which crashes on Wayland.
Comment 17 tromzy 2016-09-16 08:34:51 UTC
Well the thing is, Kmail starts on its own on Wayland (not on X11), I did not open it myself.
Comment 18 tromzy 2016-10-20 08:39:30 UTC
The Slide Back effect still does not work on latest Plasma Wayland Neon ISO (Plasma-wayland-devedition-gitunstable-2016-10-19-2117-amd64.iso).
Comment 19 tromzy 2017-03-02 13:33:35 UTC
The bug is still present in Plasma 5.9.3.
Comment 20 tromzy 2017-03-03 09:11:35 UTC
OK, here's something new : I found one case where the effect works sometimes... Except that it shouldn't do it here.

Right-clicking on the Task Manager sometimes make the other windows (including the wallpaper) slide back. I can't find a way to reproduce it every time, though.
Comment 21 tromzy 2017-03-03 09:38:59 UTC
I found something REALLY interesting : the effect works until I open a Plasma panel element such as the K Menu or the calendar, the systray... Once any of those elements is open for the first time in the Wayland session, the Slide Back effect stops working.
Comment 22 Martin Flöser 2017-03-03 16:27:19 UTC
Created attachment 104341 [details]
attachment-23502-0.html

Thanks. That's a very useful finding. It could mean the not visible windows are not ignored.
Comment 23 Martin Flöser 2017-04-15 10:02:47 UTC
New patch at https://phabricator.kde.org/D5462
Comment 24 Martin Flöser 2017-04-20 15:04:34 UTC
Git commit 919b497f9020a4be49c66d7e07f8a15aced317f0 by Martin Gräßlin.
Committed on 20/04/2017 at 15:03.
Pushed by graesslin into branch 'master'.

[effects/slideback] Consider windows which do have painting disabled as not usable

Summary:
On Wayland it can happen that a window is still in the stacking order
although it is not visible. This is mostly the case for Plasma windows.
So far the slideback effect did not ignore those windows and as they are
higher in the stacking order than most other windows it blocked the
effect from working once a Plasma panel element got closed.

This change considers a window which has painting disabled in the
stacking order as not usable and thus filters out all those windows.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

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

M  +1    -1    effects/slideback/slideback.cpp

https://commits.kde.org/kwin/919b497f9020a4be49c66d7e07f8a15aced317f0
Comment 25 tromzy 2017-06-19 14:18:09 UTC
I have to reopen this bug, since I have just discovered that the "Present Window" effect breaks the Slide Back effect.

Slide Back effect works fine until I put my mouse pointer in the corner of the screen that triggers the "Present Windows" effect ; after that, slide back effect stops working.
Comment 26 Martin Flöser 2017-06-19 15:41:43 UTC
Please open a new bug for that issue as it is a different issue now.