1. 16 Dec, 2020 1 commit
  2. 14 Dec, 2020 2 commits
    • Andrey Butirsky's avatar
      keyboard_interface: Always update modifiers cache · f67daa07
      Andrey Butirsky authored
      We send modifiers to the active client when they change, and when we
      focus an existing client we send the cached state.
      
      For this reason it's important we always update our internal store of
      modifiers regardless of whether a surface is currently active.
      
      Unit test is adopted accordingly.
      
      BUG: 429930
      f67daa07
    • Vlad Zahorodnii's avatar
      Remove factory methods in Display · 725e97aa
      Vlad Zahorodnii authored
      The main reason why we have factory methods is that up to some point,
      kwayland had its own signal to indicate when globals have to be removed.
      
      Now that all globals add destroy listeners for the wl_display object,
      we don't have that signal. Most factory methods are equivalent to doing
      new T(display).
      
      Besides adding unnecessary boilerplate code, another reason to get rid
      of the factory methods is to reduce the amount of merge conflicts. If
      several persons work on implementing wayland protocols at the same time,
      sooner or later someone will have to resolve merge conflicts in Display.
      725e97aa
  3. 12 Dec, 2020 1 commit
  4. 09 Dec, 2020 3 commits
  5. 07 Dec, 2020 1 commit
  6. 01 Dec, 2020 1 commit
  7. 27 Nov, 2020 1 commit
  8. 19 Nov, 2020 1 commit
  9. 17 Nov, 2020 2 commits
    • Aleix Pol Gonzalez's avatar
      Notify subsurfaces about output changes · c58ea3e8
      Aleix Pol Gonzalez authored
      Otherwise they wouldn't notice and wouldn't update to the settings of
      the new output, like the new output's scaling.
      c58ea3e8
    • David Edmundson's avatar
      Allow small timeout intervals in IdleInterface · 9cf51bb1
      David Edmundson authored
      A threshold exists to stop users flooding the server for no reason.
      
      However, there is a usecase for small timeouts.
      
      rsibreak has a "please relax for 20 seconds" interface. Here it makes
      perfect sense to know if a user is active in small increments. The plan
      is to start a 1s timer and wait for that. Then we wait locally for 20s
      without a resume event.
      9cf51bb1
  10. 16 Nov, 2020 1 commit
  11. 11 Nov, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Safely end drag if the source data device gets destroyed · d70552f6
      Vlad Zahorodnii authored
      We cannot end a drag after the destroyed() signal for the source data
      device is emitted because DataDeviceInterface and its d pointer are gone
      by that time.
      d70552f6
    • Vlad Zahorodnii's avatar
      Destroy all clients before destroying wl_display · e77f9ac2
      Vlad Zahorodnii authored
      One of the most disappointing things when writing autotests is dealing
      with a race condition where destructor requests are processed after all
      globals have been destroyed.
      
      With this change, the Display object will destroy all clients and their
      resources before destroying the wl_display object. The good thing about
      doing so is that shut down logic becomes simple. We don't have to assume
      that wl_resource objects can outlive their wl_global objects, etc. The
      bad thing is that it exposed a couple of pre-existing latent bugs in the
      data device and the xdg foreign code.
      
      closes #2
      e77f9ac2
  12. 10 Nov, 2020 1 commit
  13. 09 Nov, 2020 1 commit
  14. 06 Nov, 2020 1 commit
  15. 05 Nov, 2020 3 commits
  16. 04 Nov, 2020 4 commits
  17. 03 Nov, 2020 3 commits
  18. 02 Nov, 2020 2 commits
  19. 31 Oct, 2020 1 commit
  20. 30 Oct, 2020 3 commits
  21. 29 Oct, 2020 2 commits
  22. 28 Oct, 2020 3 commits
    • David Edmundson's avatar
      Only connect to BufferInterface::aboutToBeDestroyed once · 18df2451
      David Edmundson authored
      It is allowed to call surface_attach multiple times with the same
      buffer. We want to only connect once.
      
      Found whilst debugging a freeze, going through the list of
      BufferInterface connections I had multiple to the same SurfaceInterface.
      
      CCBUG: 428361
      18df2451
    • Vlad Zahorodnii's avatar
      Send a cancelled() event if the dnd data source is not accepted · aa42b540
      Vlad Zahorodnii authored
      Currently, Firefox will stuck in "dnd" mode if you try to drag any of
      its tabs. The main reason for that is that kwin doesn't send the
      wl_data_source.cancelled event if the pointer button has been released
      and there is no target surface or if the data source hasn't been
      accepted by anyone.
      
      CCBUG: 427528
      aa42b540
    • Vlad Zahorodnii's avatar
      autotests: Fix TestDragAndDrop · e9016929
      Vlad Zahorodnii authored
      Currently, most of tests in TestDragAndDrop should fail because they
      don't specify accepted mime type.
      e9016929