1. 27 Jul, 2020 8 commits
  2. 24 Jul, 2020 3 commits
  3. 23 Jul, 2020 15 commits
  4. 22 Jul, 2020 4 commits
  5. 21 Jul, 2020 3 commits
    • Aleix Pol Gonzalez's avatar
      Resize maximised windows upon workspace change · ef81ae3f
      Aleix Pol Gonzalez authored and Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez committed
      Don't issue a frameGeometry update until we have fully processed which
      geometry we want.
      
      BUG: 423596
      ef81ae3f
    • Aleix Pol Gonzalez's avatar
      Allow testing transformations on windowed KWin · 7f1abd5d
      Aleix Pol Gonzalez authored and Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez committed
      7f1abd5d
    • Vlad Zahorodnii's avatar
      Partially revert a0c4a8e7 · 27172528
      Vlad Zahorodnii authored
      Unfortunately, a0c4a8e7 has a major bug
      where clients that track focus events may get confused by focusToNull().
      
      One such a notable example is Dota 2. It tracks the focus events to
      minimize itself after the keyboard focus has been lost as well stop
      playing music while it's in background. So, when we call focusToNull(),
      Dota 2 will receive a corresponding FocusOut event and ask the window
      manager to minimize it. It doesn't really matter that the FocusOut
      event is going to be followed by a FocusIn event because when a window
      is minimized, kwin will activate the next one in the focus chain.
      
      Since those issues can't be fixed from the window manager's side, this
      patch partially reverts a0c4a leaving only the autotest.
      
      BUG: 424223
      FIXED-IN: 5.19.4
      27172528
  6. 20 Jul, 2020 1 commit
  7. 17 Jul, 2020 6 commits
    • Andrey Butirsky's avatar
      make keyboard layout DBus API more reliable · 0bb05d4b
      Andrey Butirsky authored
      having deferred m_dbusInterface deletion allows to send DBus signal in
      more cases.
      That addressed in unit tests.
      0bb05d4b
    • Andrey Butirsky's avatar
      save default keyboard layout · 8e1018de
      Andrey Butirsky authored
      Implemented for Global, Virtual Desktop and Application layout policies.
      Not implemented for Window policy due separate windows do not preserve
      their IDs between sessions (still could be implemented the same way as for Application policy).
      
      Layout saving/restoring happens on Session save/load.
      Covered by unit tests
      8e1018de
    • Vlad Zahorodnii's avatar
      Update input transformation matrix when buffer geometry changes · cf271288
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Currently, we update the input transformation matrix for the focused
      pointer surface only when the frameGeometryChanged() signal is emitted.
      However, since the input transformation matrix is computed based on the
      current position of the upper left corner of the main surface, it is
      wrong to do so because the frame geometry is a logical geometry that
      doesn't have any direct relationship with the buffer geometry, i.e. the
      rect on the screen occupied by the main surface.
      
      If the input transformation matrix gets out of sync, user may notice
      that pointer events are "shifted."
      
      This change introduces a new signal that's emitted when the input
      transformation matrix has been changed. Input related components in kwin
      can connect to it to keep a copy of the input transformation matrix in
      SeatInterface in sync. Under the hood, the new signal is just an alias
      for the bufferGeometryChanged() signal.
      cf271288
    • Vlad Zahorodnii's avatar
      Notify about new client geometry also when moving windows · c4c06c4e
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      c4c06c4e
    • Vlad Zahorodnii's avatar
      Introduce a signal that notifies about new buffer geometry · 9c55c017
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      The new signal can be useful if one wants to watch a toplevel for buffer
      geometry updates. This can be especially useful for input related code
      because the position of the upper left corner of the main surface is used
      to compute the input transformation matrix.
      9c55c017
    • Vlad Zahorodnii's avatar
      Fix testActivities · fc839d8b
      Vlad Zahorodnii authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      Currently, the test passes because the activities controller doesn't
      have enough time to fetch all activities. So, the test client won't be
      placed on the current activity.
      
      Since the Workspace is now created before starting the Xwayland, we now
      spin the event loop, which allows the activities controller to fetch the
      list of all activities and so the test client will be placed on the
      current activity, i.e. client->isOnAllActivities() will no longer return
      true.
      
      This change fixes wrong assumptions in the test and makes it robust.
      fc839d8b