Bug 377670 - Background shadow remains after quick tile window to the right
Summary: Background shadow remains after quick tile window to the right
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: aurorae (show other bugs)
Version: 5.9.3
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-16 02:16 UTC by Xu Zhao
Modified: 2017-03-29 20:27 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Screenshot (979.82 KB, image/png)
2017-03-16 02:16 UTC, Xu Zhao
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Xu Zhao 2017-03-16 02:16:36 UTC
Created attachment 104591 [details]
Screenshot

Steps to reproduce:
1. Open a window
2. Press shortcut to quick tile the window to the right
3. Show symptom: window shadow remains in the previous position. See screenshot.

My OS is openSUSE Tumbleweed 20170314, KWin 5.9.3.
I am using window decoration theme Breezemite.
Comment 1 Martin Flöser 2017-03-16 06:13:59 UTC
Please provide the output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 2 Marco Martin 2017-03-16 12:05:36 UTC
can you also paste your  ~/.config/kwinrc  config file?
Comment 3 Xu Zhao 2017-03-16 14:48:48 UTC
Hello, here is my result of running `qdbus org.kde.KWin /KWin supportInformation`
https://paste.kde.org/pzugou75m

Below is my kwinrc:
https://paste.kde.org/pkaj3tpiu
Comment 4 Martin Flöser 2017-03-16 16:14:47 UTC
KWin Support Information:
The following information should be used when requesting support on e.g. http://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like http://paste.kde.org instead of pasting into support threads.

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

Version
=======
KWin version: 5.9.3
Qt Version: 5.7.1
Qt compile version: 5.7.1
XCB compile version: 1.12

Operation Mode: X11 only

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: 11902000
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.kwin.aurorae
Theme: __aurorae__svg__Breezemite
Blur: 1
onAllDesktopsAvailable: true
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 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: 1
glSmoothScale: 2
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 0
glPlatformInterface: 1
windowsBlockCompositing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
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: HDMI-0
Geometry: 0,0,1920x1080
Refresh Rate: 60


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 960/PCIe/SSE2
OpenGL version string: 4.5.0 NVIDIA 378.13
OpenGL platform interface: GLX
OpenGL shading language version string: 4.50 NVIDIA
Driver: NVIDIA
Driver version: 378.13
GPU class: Unknown
OpenGL version: 4.5
GLSL version: 4.50
X server version: 1.19.2
Linux kernel version: 4.10.1
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:
---------------
zoom
slidingpopups
kwin4_effect_login
slide
screenshot
kwin4_effect_translucency
minimizeanimation
desktopgrid
kwin4_effect_windowaperture
colorpicker
kwin4_effect_maximize
kwin4_effect_morphingpopups
kwin4_effect_fade
kwin4_effect_dialogparent
presentwindows
highlightwindow
blur
contrast
startupfeedback
screenedge
kscreen

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

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

slide:

screenshot:

kwin4_effect_translucency:

minimizeanimation:

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_windowaperture:

colorpicker:

kwin4_effect_maximize:

kwin4_effect_morphingpopups:

kwin4_effect_fade:

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 5 Martin Flöser 2017-03-16 16:34:25 UTC
[Compositing]
OpenGLIsUnsafe=false

[Effect-CoverSwitch]
TabBox=false
TabBoxAlternative=false

[Effect-FlipSwitch]
TabBox=false
TabBoxAlternative=false

[Plugins]
highlightwindowEnabled=true

[TabBox]
ActivitiesMode=1
ApplicationsMode=0
DesktopMode=1
HighlightWindows=false
LayoutName=big_icons
MinimizedMode=0
MultiScreenMode=0
ShowDesktopMode=0
ShowTabBox=true
SwitchingMode=0

[TabBoxAlternative]
ActivitiesMode=1
ApplicationsMode=0
DesktopMode=1
HighlightWindows=true
LayoutName=org.kde.breeze.desktop
MinimizedMode=0
MultiScreenMode=0
ShowDesktopMode=0
ShowTabBox=true
SwitchingMode=0

[org.kde.kdecoration2]
BorderSize=Normal
ButtonsOnLeft=MS
ButtonsOnRight=HIAX
CloseOnDoubleClickOnMenu=false
library=org.kde.kwin.aurorae
theme=__aurorae__svg__Breezemite
Comment 6 Martin Flöser 2017-03-16 16:35:24 UTC
Could you try whether the steps to reproduce also work with the default window decoration breeze?
Comment 7 Xu Zhao 2017-03-16 16:42:44 UTC
(In reply to Martin Gräßlin from comment #6)
> Could you try whether the steps to reproduce also work with the default
> window decoration breeze?

Yes I can. Breeze does not have this problem (but breeze seems don't have window background shadow either)
Comment 8 Xu Zhao 2017-03-16 16:44:19 UTC
(In reply to Martin Gräßlin from comment #6)
> Could you try whether the steps to reproduce also work with the default
> window decoration breeze?

Sorry, Breeze decoration do have the window background shadow and it works fine.
However, Breezemite window decoration will have the problem in my screenshot.
Comment 9 Martin Flöser 2017-03-16 18:12:15 UTC
If I open a window and quick tile it, I cannot reproduce the issue. If however I had it maximized once, then I am able to reproduce the issue.
Comment 10 Martin Flöser 2017-03-16 18:19:15 UTC
So full steps to reproduce:

1. Use an aurorae theme
2. Open a window
3. Maximize it
4. unmaximize it
5. trigger quick tiling through global shortcut

This could be related to bug #376155
Comment 11 Marco Martin 2017-03-17 16:47:31 UTC
Git commit 948ff63d65d2e645eeb023387600bee52ef4d684 by Marco Martin.
Committed on 17/03/2017 at 16:47.
Pushed by mart into branch 'master'.

when the padding aroun the window changes, update

Summary:
update m_visibleRectBeforeGeometryUpdate when the padding
change signal gets emitted: aurorae updates its shadow
and postentially shadow size asynchronously after repainting.
that would make the first addRepaintDuringGeometryUpdates
when the winow is moved *for the first time* have a wrong
m_visibleRectBeforeGeometryUpdate that doesn't take into
account the shadow, leaving some leftover shadow on screen

Test Plan:
shadow leftover not reproducible anymore with maui's kwinrc
replaces D4989
tested both on master and together D4990, which should go in as well

Reviewers: #plasma, davidedmundson, graesslin

Reviewed By: #plasma, graesslin

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

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

M  +4    -0    abstract_client.cpp

https://commits.kde.org/kwin/948ff63d65d2e645eeb023387600bee52ef4d684
Comment 12 Xu Zhao 2017-03-29 17:10:26 UTC
(In reply to Marco Martin from comment #11)
> Git commit 948ff63d65d2e645eeb023387600bee52ef4d684 by Marco Martin.
> Committed on 17/03/2017 at 16:47.
> Pushed by mart into branch 'master'.
> 
> when the padding aroun the window changes, update
> 
> Summary:
> update m_visibleRectBeforeGeometryUpdate when the padding
> change signal gets emitted: aurorae updates its shadow
> and postentially shadow size asynchronously after repainting.
> that would make the first addRepaintDuringGeometryUpdates
> when the winow is moved *for the first time* have a wrong
> m_visibleRectBeforeGeometryUpdate that doesn't take into
> account the shadow, leaving some leftover shadow on screen
> 
> Test Plan:
> shadow leftover not reproducible anymore with maui's kwinrc
> replaces D4989
> tested both on master and together D4990, which should go in as well
> 
> Reviewers: #plasma, davidedmundson, graesslin
> 
> Reviewed By: #plasma, graesslin
> 
> Subscribers: plasma-devel, kwin, #kwin
> 
> Tags: #kwin
> 
> Differential Revision: https://phabricator.kde.org/D5078
> 
> M  +4    -0    abstract_client.cpp
> 
> https://commits.kde.org/kwin/948ff63d65d2e645eeb023387600bee52ef4d684

The problem remains in kwin 5.9.4, in which the fix should be contained.
See the screenshot:http://imgur.com/a/zhTJT
Comment 13 Martin Flöser 2017-03-29 19:56:17 UTC
> The problem remains in kwin 5.9.4, in which the fix should be contained.

The patch got only pushed to master branch. It is not in a bug fix branch.
Comment 14 Xu Zhao 2017-03-29 20:27:34 UTC
(In reply to Martin Gräßlin from comment #13)
> > The problem remains in kwin 5.9.4, in which the fix should be contained.
> 
> The patch got only pushed to master branch. It is not in a bug fix branch.

I am sorry I don't get it... From Github page: https://github.com/KDE/kwin/compare/v5.9.4...master, commit 948ff63 should have been included in the kwin 5.9.4.