1. 01 Oct, 2020 3 commits
  2. 29 Sep, 2020 10 commits
    • Aleix Pol Gonzalez's avatar
      scene: prefer calling mapToGlobal just once · ba2aab2f
      Aleix Pol Gonzalez authored and Vlad Zahorodnii's avatar Vlad Zahorodnii committed
      It's the same top mapToGlobal()+operator& than the other way around and
      we get to skip 1 call.
      This path is the most common so we better save it.
      (cherry picked from commit f558115d)
    • Vlad Zahorodnii's avatar
      Place internal osd windows according to placement policies · 6e56d574
      Vlad Zahorodnii authored
      Currently, internal on screen display windows have the bypass window
      manager hint set. If that hint is set, the osds must place themselves,
      but they don't do it.
      As far as I know, there is no any reason why internal OSDs have that
      flag set.
      By removing the Qt::BypassWindowManagerHint flag, we let kwin core
      know that it's okay to place internal OSD windows.
      BUG: 400675
      (cherry picked from commit 4559d303)
    • Vlad Zahorodnii's avatar
      Properly test internal window flags · 491930c4
      Vlad Zahorodnii authored
      Qt::Popup is a mask, so we cannot use the `&` operator to test the window
      type. We need to use QFlags::testFlag() for that purpose instead.
      (cherry picked from commit 70700b86)
    • Vlad Zahorodnii's avatar
      Use better window placement heuristics for internal clients · ef65a340
      Vlad Zahorodnii authored
      Currently, we do some sort of window placement only for decorated
      internal windows, which feels hacky.
      With this change, all internal clients will go through the window
      placement code, unless it's a popup or the BypassWindowManagerHint
      flag is set.
      If the BypassWindowManagerHint flag is set, the window must have
      valid position.
      CCBUG: 400675
      (cherry picked from commit bc347365)
    • Vlad Zahorodnii's avatar
      screencast: Replace EGLFence with a glFinish() · 02490c20
      Vlad Zahorodnii authored
      The way EGLFence is used is equivalent to calling glFinish().
      CCBUG: 425869
      (cherry picked from commit 6546ac2c)
    • Vlad Zahorodnii's avatar
      Allow calling setFrameGeometry() while the client is being resized · dfa08f22
      Vlad Zahorodnii authored
      Currently, if some script attempts to resize a window while it's being
      interactively resized, the corresponding change won't be propagated to
      the X server.
      The main reason for that is that we don't want to configure the frame
      window, the wrapper window, and the client window twice. However, since
      Xcb::Window keeps track of the last configured geometry, we can adjust
      X11Client::updateServerGeometry() so it only configures windows that
      have mismatching geometry.
      By doing so, the setFrameGeometry() function can be called by scripts
      even when the associated X11 window is being interactively resized.
      Note that this bug doesn't affect Wayland windows.
      BUG: 426988
      (cherry picked from commit 6f153552)
    • Vlad Zahorodnii's avatar
      Fix ghost shadows left by context menus · f53d90a9
      Vlad Zahorodnii authored
      If the shadow is destroyed immediately before the window is destroyed,
      we need to schedule a workspace repaint in order to prevent showing a
      "ghost" shadow.
      BUG: 425294
      (cherry picked from commit ddb24eaf)
    • Vlad Zahorodnii's avatar
      Schedule workspace repaint for destroyed clients · e0564069
      Vlad Zahorodnii authored
      We need to schedule a workspace repaint in case no effect is going to
      animate the window.
      The workspace repaint is issued before creating a Deleted because the
      latter takes the owner of the effect window, which means that after an
      instance of Deleted has been created, visibleRect() returns the frame
      CCBUG: 425294
      (cherry picked from commit 12e59f9a)
    • Vlad Zahorodnii's avatar
      x11: Make removal of X11 event filters safe · c5880833
      Vlad Zahorodnii authored
      If an X11 event filter has been activated and it unregisters another X11
      event filter, then the window manager may crash because the foreach macro
      in Workspace::workspaceEvent() makes a copy of m_genericEventFilters or
      m_eventFilters and we can call the event() method for an already defunct
      With this change, X11 event filters can be safely removed and installed
      at any particular moment.
      BUG: 423319
      (cherry picked from commit a433fb08)
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · c8c0c57c
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
  3. 28 Sep, 2020 1 commit
  4. 26 Sep, 2020 1 commit
  5. 25 Sep, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Enable shadow protocol support for all Wayland clients · 6b91b070
      Vlad Zahorodnii authored
      The main motivation for this change is to enable support for our
      proprietary shadow protocol in LayerShellV1Client.
      Previously we couldn't move code that handles shadows in WaylandClient
      because WaylandClient::bufferGeometry() was a pure virtual method.
      (cherry picked from commit f24f2bd5)
  6. 24 Sep, 2020 7 commits
  7. 22 Sep, 2020 1 commit
  8. 21 Sep, 2020 4 commits
  9. 19 Sep, 2020 1 commit
  10. 18 Sep, 2020 2 commits
  11. 17 Sep, 2020 6 commits
  12. 16 Sep, 2020 2 commits
  13. 15 Sep, 2020 1 commit