<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>521494</bug_id>
          
          <creation_ts>2026-06-15 12:57:12 +0000</creation_ts>
          <short_desc>Support more than one wl_data_device</short_desc>
          <delta_ts>2026-08-15 10:29:14 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Plasma</classification>
          <product>kwin</product>
          <component>Wayland drag-and-drop</component>
          <version>master</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>wishlist</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Stransky">stransky</reporter>
          <assigned_to name="KWin default assignee">kwin-bugs-null</assigned_to>
          <cc>ilikefoss</cc>
    
    <cc>lilydjwg</cc>
    
    <cc>nate</cc>
          
          <cf_commitlink>https://invent.kde.org/plasma/kwin/-/commit/528acd49e4e3b849a5fed2307f4a5e12e1a5a395</cf_commitlink>
          <cf_versionfixedin>6.7.5</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2523185</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Stransky">stransky</who>
    <bug_when>2026-06-15 12:57:12 +0000</bug_when>
    <thetext>DESCRIPTION
kwin recently supports only one wl_data_device which breaks Firefox D&amp;D.
https://bugzilla.mozilla.org/show_bug.cgi?id=2046911

More than one wl_data_device will allow to implement xdg_toplevel drag in Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2523187</commentid>
    <comment_count>1</comment_count>
      <attachid>193168</attachid>
    <who name="Martin Stransky">stransky</who>
    <bug_when>2026-06-15 12:59:57 +0000</bug_when>
    <thetext>Created attachment 193168
a patch

AI generated patch, seems to be working</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2523188</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Stransky">stransky</who>
    <bug_when>2026-06-15 13:04:56 +0000</bug_when>
    <thetext>Will submit the patch via git if it&apos;s correct and can be merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2523259</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Graham">nate</who>
    <bug_when>2026-06-15 17:44:45 +0000</bug_when>
    <thetext>You might as well submit it; patches in bug reports tend to be missed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2524176</commentid>
    <comment_count>4</comment_count>
    <who name="Bug Janitor Service">bug-janitor</who>
    <bug_when>2026-06-18 10:51:59 +0000</bug_when>
    <thetext>A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2537809</commentid>
    <comment_count>5</comment_count>
    <who name="Vlad Zahorodnii">vlad.zahorodnii</who>
    <bug_when>2026-08-10 11:00:55 +0000</bug_when>
    <thetext>Git commit e07d87d69916defcdc78ee2cb559ff9363ab2b5f by Vlad Zahorodnii, on behalf of Martin Stransky.
Committed on 10/08/2026 at 10:38.
Pushed by vladz into branch &apos;master&apos;.

Support more than one wl_data_device

KWin uses only first data_device and ignores any other.
This patch allows to create and use more wl_data_devices per wl_seat.

M  +37   -22   src/wayland/seat.cpp
M  +1    -1    src/wayland/seat_p.h

https://invent.kde.org/plasma/kwin/-/commit/e07d87d69916defcdc78ee2cb559ff9363ab2b5f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2537825</commentid>
    <comment_count>6</comment_count>
    <who name="Vlad Zahorodnii">vlad.zahorodnii</who>
    <bug_when>2026-08-10 11:35:00 +0000</bug_when>
    <thetext>Git commit 528acd49e4e3b849a5fed2307f4a5e12e1a5a395 by Vlad Zahorodnii.
Committed on 10/08/2026 at 11:08.
Pushed by vladz into branch &apos;Plasma/6.7&apos;.

Support more than one wl_data_device

KWin uses only first data_device and ignores any other.
This patch allows to create and use more wl_data_devices per wl_seat.


(cherry picked from commit e07d87d69916defcdc78ee2cb559ff9363ab2b5f)

Co-authored-by: Martin Stransky &lt;stransky@redhat.com&gt;

M  +37   -22   src/wayland/seat.cpp
M  +1    -1    src/wayland/seat_p.h

https://invent.kde.org/plasma/kwin/-/commit/528acd49e4e3b849a5fed2307f4a5e12e1a5a395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2538092</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Stransky">stransky</who>
    <bug_when>2026-08-11 13:17:00 +0000</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193168</attachid>
            <date>2026-06-15 12:59:57 +0000</date>
            <delta_ts>2026-06-15 12:59:57 +0000</delta_ts>
            <desc>a patch</desc>
            <filename>kwin_data_devices.patch</filename>
            <type>text/plain</type>
            <size>5689</size>
            <attacher name="Martin Stransky">stransky</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3NyYy93YXlsYW5kL3NlYXQuY3BwIGIvc3JjL3dheWxhbmQvc2VhdC5jcHAK
aW5kZXggMDk1Y2E4NmMyNC4uOGYzYTZmMmRhYiAxMDA2NDQKLS0tIGEvc3JjL3dheWxhbmQvc2Vh
dC5jcHAKKysrIGIvc3JjL3dheWxhbmQvc2VhdC5jcHAKQEAgLTE5NSwxMyArMTk1LDE5IEBAIHZv
aWQgU2VhdEludGVyZmFjZTo6ZW5kRHJhZygpCiAKICAgICBRT2JqZWN0OjpkaXNjb25uZWN0KGQt
PmRyYWcuZHJhZ1NvdXJjZURlc3Ryb3lDb25uZWN0aW9uKTsKIAotICAgIEFic3RyYWN0RHJvcEhh
bmRsZXIgKmRyYWdUYXJnZXREZXZpY2UgPSBkLT5kcmFnLnRhcmdldC5kYXRhKCk7CisgICAgY29u
c3QgYXV0byBkcmFnVGFyZ2V0cyA9IGQtPmRyYWcudGFyZ2V0czsKICAgICBBYnN0cmFjdERhdGFT
b3VyY2UgKmRyYWdTb3VyY2UgPSBkLT5kcmFnLnNvdXJjZTsKKyAgICBjb25zdCBib29sIGhhc1Rh
cmdldCA9IHN0ZDo6YW55X29mKGRyYWdUYXJnZXRzLmJlZ2luKCksIGRyYWdUYXJnZXRzLmVuZCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10oY29uc3QgYXV0byAm
dCkgeyByZXR1cm4gIXQuaXNOdWxsKCk7IH0pOwogCiAgICAgaWYgKGRyYWdTb3VyY2UpIHsKLSAg
ICAgICAgaWYgKGRyYWdUYXJnZXREZXZpY2UgJiYgZHJhZ1NvdXJjZS0+aXNBY2NlcHRlZCgpICYm
IGRyYWdTb3VyY2UtPnNlbGVjdGVkRG5kQWN0aW9uKCkgIT0gRG5EQWN0aW9uOjpOb25lKSB7Cisg
ICAgICAgIGlmIChoYXNUYXJnZXQgJiYgZHJhZ1NvdXJjZS0+aXNBY2NlcHRlZCgpICYmIGRyYWdT
b3VyY2UtPnNlbGVjdGVkRG5kQWN0aW9uKCkgIT0gRG5EQWN0aW9uOjpOb25lKSB7CiAgICAgICAg
ICAgICBRX0VNSVQgZHJhZ0Ryb3BwZWQoKTsKLSAgICAgICAgICAgIGRyYWdUYXJnZXREZXZpY2Ut
PmRyb3AoKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byAmdGFyZ2V0IDogZHJhZ1Rhcmdl
dHMpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgICAg
IHRhcmdldC0+ZHJvcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGRyYWdTb3VyY2UtPmRyb3BQZXJmb3JtZWQoKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGRyYWdTb3VyY2UtPmRyb3BQZXJmb3JtZWQoKTsKQEAgLTIwOSw4ICsyMTUsMTAg
QEAgdm9pZCBTZWF0SW50ZXJmYWNlOjplbmREcmFnKCkKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmIChkcmFnVGFyZ2V0RGV2aWNlKSB7Ci0gICAgICAgIGRyYWdUYXJnZXREZXZpY2UtPnVwZGF0
ZURyYWdUYXJnZXQobnVsbHB0ciwgUVBvaW50RigpLCAwKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8g
JnRhcmdldCA6IGRyYWdUYXJnZXRzKSB7CisgICAgICAgIGlmICh0YXJnZXQpIHsKKyAgICAgICAg
ICAgIHRhcmdldC0+dXBkYXRlRHJhZ1RhcmdldChudWxscHRyLCBRUG9pbnRGKCksIDApOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgZC0+ZHJhZyA9IHt9OwpAQCAtMjI3LDkgKzIzNSwxMCBAQCB2
b2lkIFNlYXRJbnRlcmZhY2U6OmNhbmNlbERyYWcoKQogICAgIGlmIChkLT5kcmFnLnNvdXJjZSkg
ewogICAgICAgICBkLT5kcmFnLnNvdXJjZS0+ZG5kQ2FuY2VsbGVkKCk7CiAgICAgfQotICAgIGlm
IChkLT5kcmFnLnRhcmdldCkgewotICAgICAgICBkLT5kcmFnLnRhcmdldC0+dXBkYXRlRHJhZ1Rh
cmdldChudWxscHRyLCBRUG9pbnRGKCksIDApOwotICAgICAgICBkLT5kcmFnLnRhcmdldCA9IG51
bGxwdHI7CisgICAgZm9yIChjb25zdCBhdXRvICZ0YXJnZXQgOiBzdGQ6OmFzX2NvbnN0KGQtPmRy
YWcudGFyZ2V0cykpIHsKKyAgICAgICAgaWYgKHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0
LT51cGRhdGVEcmFnVGFyZ2V0KG51bGxwdHIsIFFQb2ludEYoKSwgMCk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgZC0+ZHJhZyA9IHt9OwogICAgIFFfRU1JVCBkcmFnRW5kZWQoKTsKQEAgLTQ2OCwy
NiArNDc3LDM3IEBAIHZvaWQgU2VhdEludGVyZmFjZTo6c2V0RHJhZ1RhcmdldChBYnN0cmFjdERy
b3BIYW5kbGVyICpkcm9wVGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFFNYXRyaXg0eDQgJmlucHV0VHJhbnNmb3JtYXRpb24pCiB7CiAgICAgaWYgKHN1cmZh
Y2UgPT0gZC0+ZHJhZy5zdXJmYWNlKSB7Ci0gICAgICAgIC8vIG5vIGNoYW5nZQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGNvbnN0IHF1aW50MzIgc2VyaWFsID0gZC0+ZGlzcGxheS0+bmV4
dFNlcmlhbCgpOwotICAgIGlmIChkLT5kcmFnLnRhcmdldCkgewotICAgICAgICBkLT5kcmFnLnRh
cmdldC0+dXBkYXRlRHJhZ1RhcmdldChudWxscHRyLCBRUG9pbnRGKCksIHNlcmlhbCk7CisgICAg
Zm9yIChjb25zdCBhdXRvICZ0YXJnZXQgOiBzdGQ6OmFzX2NvbnN0KGQtPmRyYWcudGFyZ2V0cykp
IHsKKyAgICAgICAgaWYgKHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVEcmFn
VGFyZ2V0KG51bGxwdHIsIFFQb2ludEYoKSwgc2VyaWFsKTsKKyAgICAgICAgfQogICAgIH0KKyAg
ICBkLT5kcmFnLnRhcmdldHMuY2xlYXIoKTsKIAotICAgIC8vIFRPRE86IHRlY2huaWNhbGx5IHdl
IGNhbiBoYXZlIG11bHRpcGxlIGRhdGEgZGV2aWNlcwotICAgIC8vIGFuZCB3ZSBzaG91bGQgc2Vu
ZCB0aGUgZHJhZyB0byBhbGwgb2YgdGhlbSwgYnV0IHRoYXQgc2VlbXMgb3Zlcmx5IGNvbXBsaWNh
dGVkCi0gICAgLy8gaW4gcHJhY3RpY2Ugc28gZmFyIHRoZSBvbmx5IGNhc2UgZm9yIG11bHRpcGxl
IGRhdGEgZGV2aWNlcyBpcyBmb3IgY2xpcGJvYXJkIG92ZXJyaWRpbmcKLSAgICBkLT5kcmFnLnRh
cmdldCA9IGRyb3BUYXJnZXQ7CisgICAgaWYgKHN1cmZhY2UpIHsKKyAgICAgICAgY29uc3QgYXV0
byBkYXRhRGV2aWNlcyA9IGQtPmRhdGFEZXZpY2VzRm9yU3VyZmFjZShzdXJmYWNlKTsKKyAgICAg
ICAgZm9yIChhdXRvIGRldmljZSA6IGRhdGFEZXZpY2VzKSB7CisgICAgICAgICAgICBkLT5kcmFn
LnRhcmdldHMuYXBwZW5kKGRldmljZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGQtPmRyYWcu
dGFyZ2V0cy5pc0VtcHR5KCkgJiYgZHJvcFRhcmdldCkgeworICAgICAgICAgICAgZC0+ZHJhZy50
YXJnZXRzLmFwcGVuZChkcm9wVGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KIAotICAgIGlmIChk
LT5kcmFnLnRhcmdldCkgeworICAgIGlmICghZC0+ZHJhZy50YXJnZXRzLmlzRW1wdHkoKSkgewog
ICAgICAgICBkLT5kcmFnLnN1cmZhY2UgPSBzdXJmYWNlOwogICAgICAgICBkLT5kcmFnLnRyYW5z
Zm9ybWF0aW9uID0gaW5wdXRUcmFuc2Zvcm1hdGlvbjsKICAgICAgICAgaWYgKGQtPmRyYWdJbmhp
Yml0c1BvaW50ZXIoZC0+Z2xvYmFsUG9pbnRlci5mb2N1cy5zdXJmYWNlKSkgewogICAgICAgICAg
ICAgbm90aWZ5UG9pbnRlckxlYXZlKCk7CiAgICAgICAgIH0KLSAgICAgICAgZC0+ZHJhZy50YXJn
ZXQtPnVwZGF0ZURyYWdUYXJnZXQoc3VyZmFjZSwgZ2xvYmFsUG9zaXRpb24sIHNlcmlhbCk7Cisg
ICAgICAgIGZvciAoY29uc3QgYXV0byAmdGFyZ2V0IDogc3RkOjphc19jb25zdChkLT5kcmFnLnRh
cmdldHMpKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgdGFy
Z2V0LT51cGRhdGVEcmFnVGFyZ2V0KHN1cmZhY2UsIGdsb2JhbFBvc2l0aW9uLCBzZXJpYWwpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZC0+ZHJhZy5z
dXJmYWNlID0gbnVsbHB0cjsKICAgICB9CkBAIC01MDEsOCArNTIxLDEwIEBAIFFQb2ludEYgU2Vh
dEludGVyZmFjZTo6ZHJhZ1Bvc2l0aW9uKCkgY29uc3QKIHZvaWQgU2VhdEludGVyZmFjZTo6bm90
aWZ5RHJhZ01vdGlvbihjb25zdCBRUG9pbnRGICZwb3NpdGlvbikKIHsKICAgICBkLT5kcmFnLnBv
c2l0aW9uID0gcG9zaXRpb247Ci0gICAgaWYgKGQtPmRyYWcudGFyZ2V0KSB7Ci0gICAgICAgIGQt
PmRyYWcudGFyZ2V0LT5tb3Rpb24ocG9zaXRpb24pOworICAgIGZvciAoY29uc3QgYXV0byAmdGFy
Z2V0IDogc3RkOjphc19jb25zdChkLT5kcmFnLnRhcmdldHMpKSB7CisgICAgICAgIGlmICh0YXJn
ZXQpIHsKKyAgICAgICAgICAgIHRhcmdldC0+bW90aW9uKHBvc2l0aW9uKTsKKyAgICAgICAgfQog
ICAgIH0KICAgICBRX0VNSVQgZHJhZ01vdmVkKHBvc2l0aW9uKTsKIH0KQEAgLTEyOTMsMTQgKzEz
MTUsMjAgQEAgYm9vbCBTZWF0SW50ZXJmYWNlUHJpdmF0ZTo6c3RhcnREcmFnKERyYWc6Ok1vZGUg
bW9kZSwgQWJzdHJhY3REYXRhU291cmNlICpkcmFnU28KICAgICB9CiAgICAgZHJhZy5kcmFnSWNv
biA9IGRyYWdJY29uOwogCi0gICAgaWYgKCFkYXRhRGV2aWNlc0ZvclN1cmZhY2Uob3JpZ2luU3Vy
ZmFjZSkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGRyYWcudGFyZ2V0ID0gZGF0YURldmljZXNGb3JT
dXJmYWNlKG9yaWdpblN1cmZhY2UpWzBdOworICAgIGNvbnN0IGF1dG8gZGV2aWNlcyA9IGRhdGFE
ZXZpY2VzRm9yU3VyZmFjZShvcmlnaW5TdXJmYWNlKTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDog
ZGV2aWNlcykgeworICAgICAgICBkcmFnLnRhcmdldHMuYXBwZW5kKGRldmljZSk7CiAgICAgfQot
ICAgIGlmIChkcmFnLnRhcmdldCkgeworICAgIGlmICghZHJhZy50YXJnZXRzLmlzRW1wdHkoKSkg
ewogICAgICAgICBpZiAoZHJhZ0luaGliaXRzUG9pbnRlcihvcmlnaW5TdXJmYWNlKSkgewogICAg
ICAgICAgICAgcS0+bm90aWZ5UG9pbnRlckxlYXZlKCk7CiAgICAgICAgIH0KLSAgICAgICAgZHJh
Zy50YXJnZXQtPnVwZGF0ZURyYWdUYXJnZXQob3JpZ2luU3VyZmFjZSwgZHJhZy5wb3NpdGlvbiwg
ZGlzcGxheS0+bmV4dFNlcmlhbCgpKTsKKyAgICAgICAgY29uc3QgcXVpbnQzMiBzZXJpYWwgPSBk
aXNwbGF5LT5uZXh0U2VyaWFsKCk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byAmdGFyZ2V0IDog
c3RkOjphc19jb25zdChkcmFnLnRhcmdldHMpKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0KSB7
CisgICAgICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVEcmFnVGFyZ2V0KG9yaWdpblN1cmZhY2Us
IGRyYWcucG9zaXRpb24sIHNlcmlhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9
CiAgICAgUV9FTUlUIHEtPmRyYWdTdGFydGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9zcmMvd2F5bGFuZC9zZWF0X3AuaCBiL3NyYy93YXlsYW5kL3NlYXRfcC5oCmluZGV4IGFl
NjY0ZjMxZjEuLmE4ZWYwZGNkMzIgMTAwNjQ0Ci0tLSBhL3NyYy93YXlsYW5kL3NlYXRfcC5oCisr
KyBiL3NyYy93YXlsYW5kL3NlYXRfcC5oCkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGljOgogICAg
ICAgICBNb2RlIG1vZGUgPSBNb2RlOjpOb25lOwogICAgICAgICBBYnN0cmFjdERhdGFTb3VyY2Ug
KnNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIFFQb2ludGVyPFN1cmZhY2VJbnRlcmZhY2U+IHN1
cmZhY2U7Ci0gICAgICAgIFFQb2ludGVyPEFic3RyYWN0RHJvcEhhbmRsZXI+IHRhcmdldDsKKyAg
ICAgICAgUUxpc3Q8UVBvaW50ZXI8QWJzdHJhY3REcm9wSGFuZGxlcj4+IHRhcmdldHM7CiAgICAg
ICAgIFFQb2ludGVyPERyYWdBbmREcm9wSWNvbj4gZHJhZ0ljb247CiAgICAgICAgIFFQb2ludEYg
cG9zaXRpb247CiAgICAgICAgIFFNYXRyaXg0eDQgdHJhbnNmb3JtYXRpb247Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>