Bug 402765

Summary: Zoom effect ignores mouse tracking option (Wayland)
Product: [Plasma] kwin Reporter: Erin Yuki Schlarb <erin-kde>
Component: effects-variousAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal CC: bugseforuns, meven29, thomas.luebking, xaver.hugl
Priority: NOR Keywords: wayland-only
Version First Reported In: 5.14.4   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Erin Yuki Schlarb 2019-01-01 20:57:30 UTC
SUMMARY
When changing the settings of the “Zoom” effect there is an option called “mouse tracking” whose default value defaults to “Proportional”. This works as expected, however when changing this to “Disabled” I'd expect a zoomed-in desktop to stick whatever location it had when zooming in and NOT move when the mouse cursor is moved (correct me if I'm misinterpreting something here!). At least for me on Wayland this is not the case however.


STEPS TO REPRODUCE
1. Open the settings of the “Zoom” effect plugin (under system-settings → workspace-behaviour)
2. Change “mouse tracking” to “disabled”
3. Click “OK” to save and close the dialog
4. Zoom in using the keybinding (Super+`=` by default)

OBSERVED RESULT
When moving the mouse cursor the part of the desktop currently visible will move along with the mouse cursor – sometimes it will zoom into the upper-left edge of the screen instead, jumping to the current mouse position only after nudging the mouse.


EXPECTED RESULT
The desktop should zoom into the desktop at the current mouse position but should not respond to changes in the cursor position afterwards.


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian unstable with KDE Neon user repo
(there is no About System anywhere)
KDE Plasma Version: 5.14.4
KDE Frameworks Version: 5.53.0
Qt Version: 5.11.2
GPU: AMD Radeon R9 M270 (amdgpu driver)
Comment 1 Erin Yuki Schlarb 2019-01-01 20:58:37 UTC
Forgot to mention: I added “Wayland” in the title since I only tried this on Wayland so far.
Comment 2 Vlad Zahorodnii 2019-01-01 22:05:23 UTC
Works fine for me on both X11 and Wayland.

Could you please post output of
    qdbus org.kde.KWin /KWin supportInformation
Comment 3 Erin Yuki Schlarb 2019-01-01 23:49:18 UTC
Thanks for the response! Here it is:

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

Version
=======
KWin version: 5.14.4
Qt Version: 5.11.2
Qt compile version: 5.11.2
XCB compile version: 1.13

Operation Mode: Xwayland

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: 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: 12003000
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.oxygen
Theme: 
Blur: 0
onAllDesktopsAvailable: true
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 5, 4, 3, 9
decorationButtonsRight: 6, 1
borderSize: 2
gridUnit: 20
font: eufm10,17,-1,5,50,0,0,0,0,0,LyX
smallSpacing: 5
largeSpacing: 20

Platform
==========
Name: DRM
Active: true
Atomic Mode Setting: true

Options
=======
focusPolicy: 1
nextFocusPrefersMouse: true
clickRaise: true
autoRaise: false
autoRaiseInterval: 750
delayFocusInterval: 200
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 5
focusPolicyIsReasonable: true
borderSnapZone: 100
windowSnapZone: 100
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 2
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: 2
glSmoothScale: 2
xrenderSmoothScale: true
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 101
glPlatformInterface: 2
windowsBlockCompositing: true

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: true
cursorPushBackDistance: 1x1
timeThreshold: 50
reActivateThreshold: 500
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: LP156WF6-SPK eDP-1-unbekannt
Geometry: 0,0,1920x1080
Scale: 1
Refresh Rate: 60.02


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon R7 Graphics (CARRIZO, DRM 3.26.0, 4.18.0-3-amd64, LLVM 7.0.1)
OpenGL version string: 4.4 (Compatibility Profile) Mesa 18.2.6
OpenGL platform interface: EGL
OpenGL shading language version string: 4.40
Driver: R600G
GPU class: Unknown
OpenGL version: 4.4
GLSL version: 4.40
Mesa version: 18.2.6
Linux kernel version: 4.18
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
snaphelper
mousemark
mouseclick
kwin4_effect_translucency
kwin4_effect_morphingpopups
kwin4_effect_login
kwin4_effect_logout
dimscreen
kwin4_effect_maximize
kwin4_effect_dialogparent
kwin4_effect_fade
kwin4_effect_windowaperture
kwin4_effect_frozenapp
slidingpopups
screenshot
minimizeanimation
desktopgrid
cubeslide
cube
coverswitch
colorpicker
highlightwindow
blur
contrast
startupfeedback
screenedge
kscreen

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

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

snaphelper:

mousemark:
width: 3
color: #ff0000

mouseclick:
color1: #ff0000
color2: #00ff00
color3: #0000ff
lineWidth: 1
ringLife: 200
ringSize: 10
ringCount: 1
showText: false
font: DejaVu Serif,16,-1,5,50,0,0,0,0,0,Book
enabled: false

kwin4_effect_translucency:

kwin4_effect_morphingpopups:

kwin4_effect_login:

kwin4_effect_logout:

dimscreen:

kwin4_effect_maximize:

kwin4_effect_dialogparent:

kwin4_effect_fade:

kwin4_effect_windowaperture:

kwin4_effect_frozenapp:

slidingpopups:
slideInDuration: 30
slideOutDuration: 50

screenshot:

minimizeanimation:

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

cubeslide:
rotationDuration: 200
dontSlidePanels: false
dontSlideStickyWindows: false
usePagerLayout: true
useWindowMoving: false

cube:
cubeOpacity: 0.800000011920929
opacityDesktopOnly: false
displayDesktopName: true
reflection: true
rotationDuration: 100
backgroundColor: #000000
capColor: #302f2f
paintCaps: true
closeOnMouseRelease: false
zPosition: 100
useForTabBox: true
invertKeys: false
invertMouse: false
capDeformationFactor: 0
useZOrdering: true
texturedCaps: true

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

colorpicker:

highlightwindow:

blur:

contrast:

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 4 Vlad Zahorodnii 2019-01-02 10:47:03 UTC
(In reply to Alexander Schlarb from comment #3)
> Effect Settings:
> ----------------
> zoom:
> mouseTracking: 0
It looks like you're still using proportional mouse tracking.
Comment 5 Vlad Zahorodnii 2019-01-02 10:50:11 UTC
Can confirm.
Comment 6 Vlad Zahorodnii 2019-01-02 11:12:13 UTC
It's caused by https://phabricator.kde.org/source/kwin/browse/master/effects/zoom/zoom.cpp$204-207, though it's not clear to me why that piece of code changes mouse tracking type.
Comment 7 Erin Yuki Schlarb 2019-01-02 13:53:22 UTC
I guess that would explain why it sometimes starts off in the upper-left edge before jumping to the current mouse position?

@Thomas Lübking: In case your still active could you maybe gives us a quick idea why you added the code to reset mouse cursor tracking, back in https://phabricator.kde.org/R108:c2e06221ca2fd3c142fa5d05a7fc0a97bf3f552d and, most importantly, what would cause such a fallback to be invoked?
Comment 8 Erin Yuki Schlarb 2019-01-02 14:00:06 UTC
Vlad Zagorodniy: Thanks for doing research and triage on this!
Comment 9 Patrick Silva 2020-05-17 16:24:13 UTC
Still an issue on Plasma 5.19 beta.

Operating System: Arch Linux 
KDE Plasma Version: 5.18.90
KDE Frameworks Version: 5.70.0
Qt Version: 5.15.0 rc2
Comment 10 Zamundaaa 2024-06-06 15:19:30 UTC
Works correctly on git master, so I assume this is fixed