https://bugs.kde.org/show_bug.cgi?id=500962
Bug ID: 500962 Summary: Drag and drop "randomly" does not honor mime type refusal Classification: Plasma Product: kwin Version: 6.3.2 Platform: Arch Linux OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: Wayland drag-and-drop Assignee: kwin-bugs-n...@kde.org Reporter: w...@nereid.pl Target Milestone: --- Created attachment 179042 --> https://bugs.kde.org/attachment.cgi?id=179042&action=edit Bad dnd behavior I don't think kwin follows the dnd protocol in the right way. 1. {Default Queue} wl_data_device#11.data_offer(new id wl_data_offer#4278190081) 2. {Default Queue} wl_data_offer#4278190081.offer("text/plain") 3. {Default Queue} wl_data_offer#4278190081.source_actions(1) 4. {Default Queue} wl_data_device#11.enter(234838, wl_surface#14, -7.53906250, 400.86328125, wl_data_offer#4278190081) 5. {Default Queue} -> wl_data_offer#4278190081.set_actions(1, 1) 6. {Default Queue} -> wl_data_offer#4278190081.accept(234838, nil) 7. {Default Queue} wl_data_offer#4278190081.action(0) 8. {Default Queue} wl_data_offer#4278190081.action(1) 9. {Default Queue} wl_data_device#11.drop() 10. {Default Queue} -> wl_data_offer#4278190081.destroy() My application gets a wl_data_offer offer with a mime type it does not accept (line 2). It responds that it is not accepted (line 6). "For objects of version 3 or newer, this request determines the final result of the drag-and-drop operation. If the end result is that no mime types were accepted, the drag-and-drop operation will be cancelled and the corresponding drag source will receive wl_data_source.cancelled." The dnd operation is however not cancelled, and a drop is eventually executed (line 9). "end drag-and-drop session successfully" It seems that the dnd action state is somehow affected by external factors, as can be seen in the attached video. When a text selection is dragged from the browser directly to my application, the mime refusal is honored, and the mouse cursor indicates there are no actions available. However, when the selection was over the desktop background, the mime refusal is ignored, and the mouse cursor indicates that the dnd copy operation is possible. It is then executed when the mouse button is released. Version ======= KWin version: 6.3.2 Qt Version: 6.8.2 Qt compile version: 6.8.2 XCB compile version: 1.17.0 Operation Mode: Wayland Build Options ============= KWIN_BUILD_DECORATIONS: yes KWIN_BUILD_TABBOX: yes KWIN_BUILD_ACTIVITIES: yes HAVE_X11_XCB: yes HAVE_GLX: yes X11 === Vendor: The X.Org Foundation Vendor Release: 12401006 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: Plugin recommends border size: None onAllDesktopsAvailable: true alphaChannelSupported: true closeOnDoubleClickOnMenu: false decorationButtonsLeft: 0, 2 decorationButtonsRight: 6, 3, 4, 5 borderSize: 0 gridUnit: 10 font: Noto Sans,10,-1,0,400,0,0,0,0,0,0,0,0,0,0,1 smallSpacing: 2 largeSpacing: 10 Output backend ============== Name: DRM Atomic Mode Setting on GPU 0: true Cursor ====== themeName: breeze_cursors themeSize: 24 Options ======= focusPolicy: ClickToFocus xwaylandCrashPolicy: 1 xwaylandMaxCrashCount: 3 nextFocusPrefersMouse: false clickRaise: true autoRaise: false autoRaiseInterval: 0 delayFocusInterval: 0 shadeHover: false shadeHoverInterval: 250 separateScreenFocus: true placement: 5 activationDesktopPolicy: SwitchToOtherDesktop focusPolicyIsReasonable: true borderSnapZone: 10 windowSnapZone: 10 centerSnapZone: 0 snapOnlyWhenOverlapping: false edgeBarrier: 100 cornerBarrier: 1 rollOverDesktops: false focusStealingPreventionLevel: 1 operationTitlebarDblClick: 5000 operationMaxButtonLeftClick: 5000 operationMaxButtonMiddleClick: 5015 operationMaxButtonRightClick: 5014 commandActiveTitlebar1: MouseRaise commandActiveTitlebar2: MouseNothing commandActiveTitlebar3: MouseOperationsMenu commandInactiveTitlebar1: MouseActivateAndRaise commandInactiveTitlebar2: MouseNothing commandInactiveTitlebar3: MouseOperationsMenu commandWindow1: MouseActivateRaiseOnReleaseAndPassClick commandWindow2: MouseActivateAndPassClick commandWindow3: MouseActivateAndPassClick commandWindowWheel: MouseNothing commandAll1: MouseUnrestrictedMove commandAll2: MouseToggleRaiseAndLower commandAll3: MouseUnrestrictedResize keyCmdAllModKey: 16777250 doubleClickBorderToMaximize: true condensedTitle: false electricBorderMaximize: true electricBorderTiling: true electricBorderCornerRatio: 0.25 borderlessMaximizedWindows: false killPingTimeout: 5000 compositingMode: 1 useCompositing: true hiddenPreviews: 1 glSmoothScale: 2 glStrictBinding: true glStrictBindingFollowsDriver: true glPreferBufferSwap: AutoSwapStrategy glPlatformInterface: 2 windowsBlockCompositing: true allowTearing: true interactiveWindowMoveEnabled: true Screen Edges ============ desktopSwitching: false desktopSwitchingMovingClients: false cursorPushBackDistance: 1x1 actionTopLeft: 0 actionTop: 0 actionTopRight: 0 actionRight: 0 actionBottomRight: 0 actionBottom: 0 actionBottomLeft: 0 actionLeft: 0 Screens ======= Number of Screens: 2 Screen 0: --------- Name: DP-4 Enabled: 1 Geometry: 2560,0,1920x1080 Physical size: 509x286mm Scale: 1 Refresh Rate: 60000 Adaptive Sync: incapable Screen 1: --------- Name: DP-5 Enabled: 1 Geometry: 0,0,2560x1440 Physical size: 697x392mm Scale: 1.5 Refresh Rate: 143999 Adaptive Sync: automatic Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce RTX 4090/PCIe/SSE2 OpenGL version string: 3.1.0 NVIDIA 570.124.04 OpenGL platform interface: EGL OpenGL shading language version string: 1.40 NVIDIA via Cg compiler Driver: NVIDIA Driver version: 570.124.4 GPU class: Unknown OpenGL version: 3.1 GLSL version: 1.40 X server version: 1.24.1 Linux kernel version: 6.13.5 Direct rendering: Requires strict binding: no Virtual Machine: no OpenGL 2 Shaders are used Loaded Effects: --------------- screenshot outputlocator colorpicker zoom screenedge blur contrast sessionquit logout login slidingpopups windowaperture slide magiclamp glide maximize fullscreen frozenapp fadingpopups dimscreen dialogparent wobblywindows tileseditor overview highlightwindow blendchanges startupfeedback systembell screentransform kscreen invert Currently Active Effects: ------------------------- blur contrast Effect Settings: ---------------- screenshot: outputlocator: colorpicker: zoom: zoomFactor: 1.2 mousePointer: 0 mouseTracking: 0 focusTrackingEnabled: false textCaretTrackingEnabled: false focusDelay: 350 moveFactor: 20 targetZoom: 1 screenedge: blur: contrast: sessionquit: pluginId: sessionquit isActiveFullScreenEffect: false logout: pluginId: logout isActiveFullScreenEffect: false login: pluginId: login isActiveFullScreenEffect: false slidingpopups: slideInDuration: 200 slideOutDuration: 200 windowaperture: pluginId: windowaperture isActiveFullScreenEffect: false slide: horizontalGap: 45 verticalGap: 20 slideBackground: true magiclamp: glide: duration: 160 inRotationEdge: Top inRotationAngle: 3 inDistance: 30 inOpacity: 0.4 outRotationEdge: Bottom outRotationAngle: 3 outDistance: 30 outOpacity: 0 maximize: pluginId: maximize isActiveFullScreenEffect: false fullscreen: pluginId: fullscreen isActiveFullScreenEffect: false frozenapp: pluginId: frozenapp isActiveFullScreenEffect: false fadingpopups: pluginId: fadingpopups isActiveFullScreenEffect: false dimscreen: pluginId: dimscreen isActiveFullScreenEffect: false dialogparent: pluginId: dialogparent isActiveFullScreenEffect: false wobblywindows: stiffness: 0.1 drag: 0.85 moveFactor: 0.1 xTesselation: 20 yTesselation: 20 minVelocity: 0 maxVelocity: 1000 stopVelocity: 0.5 minAcceleration: 0 maxAcceleration: 1000 stopAcceleration: 0.5 moveWobble: true resizeWobble: true tileseditor: activeView: delegate: animationDuration: 200 overview: activeView: delegate: animationDuration: 300 ignoreMinimized: false filterWindows: true organizedGrid: true overviewPartialActivationFactor: 0 overviewGestureInProgress: false transitionPartialActivationFactor: 0 transitionGestureInProgress: false gridPartialActivationFactor: 0 gridGestureInProgress: false desktopOffset: searchText: highlightwindow: blendchanges: startupfeedback: type: 0 systembell: screentransform: kscreen: invert: Loaded Plugins: --------------- BounceKeysPlugin KeyNotificationPlugin StickyKeysPlugin buttonsrebind eis krunnerintegration nightlight screencast Available Plugins: ------------------ BounceKeysPlugin KeyNotificationPlugin StickyKeysPlugin buttonsrebind eis krunnerintegration nightlight screencast -- You are receiving this mail because: You are watching all bug changes.