Bug 376648

Summary: Magic lamp produces artifacts when "minimizing" to tray
Product: [Plasma] kwin Reporter: Janek Bevendorff <kde>
Component: effects-variousAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal CC: aligatorturtle, bugseforuns, kde, vlad.zahorodnii
Priority: VLO    
Version First Reported In: 5.9.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Janek Bevendorff 2017-02-18 23:22:34 UTC
When an application minimizes to tray (i.e. minimizes and then hides the window, so there is no taskbar button anymore), the magic lamp effect is targeted towards the cursor position instead of the taskbar. This works well most of the time, but sometimes it creates severe rendering artifacts in the form of moving vertical or horizontal bars. This effect is especially obvious when the cursor position is more to the center of the screen than to the edges.

To generally improve the visuals of that effect, it would maybe also be good not to use the cursor position as a single pixel but rather an area of a few pixels. I don't know if that would get rid of the above-mentioned artifacts, but it would overall look less glitchy.


KWin Support Information:
==========================

Version
=======
KWin version: 5.9.0
Qt Version: 5.8.0
Qt compile version: 5.8.0
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: 11901000
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: true
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 9
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,5,50,0,0,0,0,0,Regular
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: 1
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: true
glPreferBufferSwap: 99
glPlatformInterface: 1
windowsBlockCompositing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 1
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: 2

Screen 0:
---------
Name: DVI-I-1
Geometry: 0,0,2560x1440
Refresh Rate: 59.9506

Screen 1:
---------
Name: DVI-D-0
Geometry: 2560,0,2560x1440
Refresh Rate: 59.9506


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 960/PCIe/SSE2
OpenGL version string: 3.1.0 NVIDIA 375.26
OpenGL platform interface: GLX
OpenGL shading language version string: 1.40 NVIDIA via Cg compiler
Driver: NVIDIA
Driver version: 375.26
GPU class: Unknown
OpenGL version: 3.1
GLSL version: 1.40
X server version: 1.19.1
Linux kernel version: 4.9.6
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:  yes

Loaded Effects:
---------------
zoom
dimscreen
slidingpopups
kwin4_effect_login
wobblywindows
glide
slide
screenshot
magiclamp
kwin4_effect_windowaperture
desktopgrid
kwin4_effect_translucency
colorpicker
kwin4_effect_morphingpopups
kwin4_effect_fade
kwin4_effect_maximize
presentwindows
kwin4_effect_dialogparent
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

dimscreen:

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

wobblywindows:
stiffness: 0.15
drag: 0.55
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

glide:
duration: 350
effect: 0
angle: 1

slide:

screenshot:

magiclamp:
animationDuration: 250

kwin4_effect_windowaperture:

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

kwin4_effect_translucency:

colorpicker:

kwin4_effect_morphingpopups:

kwin4_effect_fade:

kwin4_effect_maximize:

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

kwin4_effect_dialogparent:

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

contrast:

startupfeedback:
type: 0

screenedge:

kscreen:
Comment 1 Christos 2017-09-03 15:51:12 UTC
I also have the same issue. Magic lamp minimizes/maximizes the windows with the mouse cursor position as a target instead of the dock/taskbar/etc. I am using plank dock.
Comment 2 Martin Flöser 2017-09-03 19:25:06 UTC
(In reply to Christos from comment #1)
> I also have the same issue. Magic lamp minimizes/maximizes the windows with
> the mouse cursor position as a target instead of the dock/taskbar/etc. I am
> using plank dock.

Please report to plank dock developers that they should implement _NET_WM_ICON_GEOMETRY - see https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472570848
Comment 3 Vlad Zahorodnii 2018-08-09 11:11:55 UTC
> When an application minimizes to tray

KMail?
Comment 4 Patrick Silva 2019-03-25 16:29:31 UTC
Magic lamp effect is still not working correctly when an app in minimized to systay (I tested qBittorrent 4.1.5).

Operating System: Arch Linux 
KDE Plasma Version: 5.15.3
KDE Frameworks Version: 5.56.0
Qt Version: 5.12.2
Comment 5 Vlad Zahorodnii 2019-03-28 12:25:31 UTC
I think it's wrong to animate a window if it doesn't have associated icon geometry . In general that contradicts to the purpose of minimize effects.
Comment 6 David Edmundson 2023-05-11 08:33:12 UTC
Please confirm if this is still an issue on 5.27
Comment 7 Bug Janitor Service 2023-05-26 03:45:37 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Bug Janitor Service 2023-06-10 03:45:33 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!