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)
Forgot to mention: I added “Wayland” in the title since I only tried this on Wayland so far.
Works fine for me on both X11 and Wayland. Could you please post output of qdbus org.kde.KWin /KWin supportInformation
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:
(In reply to Alexander Schlarb from comment #3) > Effect Settings: > ---------------- > zoom: > mouseTracking: 0 It looks like you're still using proportional mouse tracking.
Can confirm.
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.
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?
Vlad Zagorodniy: Thanks for doing research and triage on this!
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
Works correctly on git master, so I assume this is fixed