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.

Reply via email to