1. 20 Oct, 2020 1 commit
  2. 11 Aug, 2020 1 commit
  3. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
      4ce853e8
    • Vlad Zahorodnii's avatar
      Switch to SPDX license markers · 1fb9f6f1
      Vlad Zahorodnii authored
      The main advantage of SPDX license identifiers over the traditional
      license headers is that it's more difficult to overlook inappropriate
      licenses for kwin, for example GPL 3. We also don't have to copy a
      lot of boilerplate text.
      
      In order to create this change, I ran licensedigger -r -c from the
      toplevel source directory.
      1fb9f6f1
  4. 29 Jul, 2020 1 commit
  5. 25 Sep, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename Client to X11Client · ffcbe24e
      Vlad Zahorodnii authored
      Summary:
      Currently each managed X11 client is represented with an instance of
      Client class, however the name of that class is very generic and the
      only reason why it's called that way is because historically kwin
      was created as an x11 window manager, so "Client" was a sensible choice.
      
      With introduction of wayland support, things had changed and therefore
      Client needs to be renamed to X11Client in order to better reflect what
      that class stands for.
      
      Renaming of Client to X11Client was agreed upon during the last KWin
      sprint.
      
      Test Plan: Compiles, the test suite is still green.
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24184
      ffcbe24e
  6. 02 Jul, 2019 1 commit
  7. 19 Feb, 2019 3 commits
    • Roman Gilg's avatar
      [xwl] text/x-uri converter for selected X url list format targets · 522d2935
      Roman Gilg authored
      Summary:
      On X several target atoms are established to provide data similar to the
      text/uri-list target format (the respective MIME on Wayland is called
      text/x-uri).
      
      Firefox can send link data in the NETSCAPE_URL format ones. Chromium on the
      other side sends link data in the text/x-moz-url format, which transports
      UTF-16 text.
      
      For both these peculiarities this patch provides converter functions, that
      translate these formats into the Wayland native text/x-uri format. In the
      other direction no translation is necessary. Both browsers supports the
      text/uri-list format when receiving link lists.
      
      Test Plan: Manually with Firefox and Chromium.
      
      Reviewers: #kwin
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15629
      522d2935
    • Roman Gilg's avatar
      [xwl] Drag and drop between Xwayland and Wayland native clients · 548978bf
      Roman Gilg authored
      Summary:
      Building upon the generic X Selection support this patch establishes another
      selection class representing the XDND selection and provides interfaces
      to communicate drags originating from Xwayland windows to the Wayland
      server KWin and drags originating from Wayland native drags to Xwayland.
      
      For Wayland native drags KWin will claim the XDND selection as owner and
      will simply translate all relevant events to the XDND protocol and receive
      alike messages by X clients.
      
      When an X client claims the XDND selection KWin is notified via the X protocol
      and it decides if it allows the X drag to transcend into the Wayland protocol.
      If this is the case the mouse position is tracked and on entering a Wayland
      native window a proxy X Window is mapped to the top of the window stack. This
      proxy window acts as a drag destination for the drag origin window and again
      X messages will be translated into respective Wayland protocol calls. If the
      cursor leaves the Wayland window geometry before a drop is registered, the
      proxy window is unmapped, what triggers a subsequent drag leave event.
      
      In both directions the necessary core integration is minimal. There is a single
      call to be done in the drag and drop event filter through the Xwayland
      interface class.
      
      From my tests this patch facilitates drags between any Qt/KDE apps. What needs
      extra care are the browsers, which use target formats, that are not directly
      compatible with the Wayland protocol's MIME representation. For Chromium an
      additional integration step must be done in order to provide it with a net
      window stack containing the proxy window.
      
      Test Plan: Manually. Auto tests planned.
      
      Reviewers: #kwin
      
      Subscribers: zzag, kwin, alexde
      
      Tags: #kwin
      
      Maniphest Tasks: T4611
      
      Differential Revision: https://phabricator.kde.org/D15627
      548978bf
    • Roman Gilg's avatar
      [xwl] Generic X selections translation mechanism with Clipboard support · 6e08fb2f
      Roman Gilg authored
      Summary:
      In this patch an infrastructure is created to represent generic X selections
      in a Wayland session and use them for data transfers between Xwayland windows
      and Wayland native clients.
      
      The central manager is the DataBridge class, in which Selection objects can be
      created. This is hard-coded and such a Selection object persists until the end
      of the session, so no arbitrary selections can be created on the fly. For now
      the X Clipboard selection is supported, whose corresponding mechanism in the
      Wayland protocol is just called Selection.
      
      A Selection object listens for selection owner changes on the X side and for
      similar events into the Wayland server interfaces. If a data provider is
      available a selection source object is created by the Selection object. In case
      data is requested on the other side, a data transfer is initialized by creating
      a Transfer object. A Selection keeps track of all transfers and makes sure that
      they are destroyed when they are finished or in case they idle because of
      misbehaving clients.
      
      The Clipboard class translates the X Clipboard via a proxy window. Selection
      changes on the Wayland side are listened to through a new signal on the active
      KWayland seat interface.
      
      The previously used X clipboard syncer helper is disabled. The clipboard sync
      autotest is changed to the new mechanism.
      
      BUG: 394765
      BUG: 395313
      
      Test Plan: Manually and clipboard sync autotest.
      
      Reviewers: #kwin
      
      Subscribers: zzag, graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15061
      6e08fb2f