1. 07 Oct, 2018 3 commits
    • David Edmundson's avatar
      [wayland] Use pending maximize mode in decoration updates · 29a49f86
      David Edmundson authored
      Summary:
      The change to make maximize mode asynchronous featured the comment
      
      >Things are a bit complex with borders. Technically we
      >shouldn't update them till we get a response, but we also need to have
      >the correct geometry of the full size window in our request. For now
      >they behave as before, updating when we request the change.
      
      We call setNoBorder when we request the geometry but decoratedClient
      also checks the maximise mode, in order to follow the scheme above we
      need this to operate on the requested state not current state.
      
      X is unaffected.
      
      This fixes the borders being restored correct after maximize/restore.
      
      Test Plan:
      Chose a theme with visible borders
      Maximised a window and back
      They restored
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15991
      29a49f86
    • Vlad Zahorodnii's avatar
      Delete unused function · d95b6548
      Vlad Zahorodnii authored
      Summary:
      The function was introduced in 2d99ef91.
      
      It's not used anywhere plus we don't need it anymore because
      AbstractClient::isActiveFullscreen checks main clients.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16022
      d95b6548
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · c244ee5e
      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"
      c244ee5e
  2. 06 Oct, 2018 2 commits
  3. 05 Oct, 2018 6 commits
    • David Edmundson's avatar
      [wayland] Asyncronously update maximise flags · e327cce4
      David Edmundson authored
      Summary:
      A window maximising is an async operation. We work out what size we want
      the client to be, then request the client to update. The window isn't
      really maximised until we get that new buffer with the new size.
      
      This patch splits the requested, pending and current state, updating as
      appropriate.
      
      Things are a bit complex with things like borders. Technically we
      shouldn't update them till we get a response, but we also need to have
      the correct geometry of the full size window in our request. For now
      they behave as before, updating when we request the change.
      
      X code is untouched.
      
      This hopefully fixes maximise animations on wayland as now we update the
      geometry before emitting maximisedChanged.
      
      Test Plan:
      Maximised a window with the button and double clicking title bar.
      
      I get only the following events on maximise/restore:
      19:51:39.156 KWin::EffectsHandlerImpl::slotGeometryShapeChanged geometry
      shape changed QRect(47,24 640x509) QRect(0,0 716x573)
      19:51:39.157 KWin::EffectsHandlerImpl::slotClientMaximized slot client
      maximised true true
      
      19:51:40.522 KWin::EffectsHandlerImpl::slotGeometryShapeChanged geometry
      shape changed QRect(0,0 716x573) QRect(47,24 640x509)
      19:51:40.522 KWin::EffectsHandlerImpl::slotClientMaximized slot client
      maximised false false
      
      BUG: 382698
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15150
      e327cce4
    • David Edmundson's avatar
      [wayland] Syncronise pending geometry with acked configure requests · 65b8ba17
      David Edmundson authored
      Summary:
      When we want to change a client's size and position together we have to
      request the client becomes a new size and only then move the window to
      the new location.
      
      Currently we process the new position the next time the buffer updates,
      but with no guarantee that it has actually tried to resize/whatever yet.
      The client could be providing a new buffer just because the contents
      have changed.
      
      XDGShell has an acked serial designed to keep everything precisely in
      sync. A surface represents the last configure that was acked.
      
      This patch tracks the pending position for each configure and applies it
      accordingly.
      
      WL_shell does not have this mechanism, so behaviour is kept the same as
      before.
      
      ----
      
      This is a pre-requisite to syncing maximisedState/isFullScreen with the
      configure request.
      
      Potentially we could remove the isWaitingForResizeSync checks when
      resizing and it will still resize smoothly.
      
      Test Plan:
      Relevant unit test still passes with the client responding
      Resized a window from the left edge with WLShell and XDGShellV6
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15135
      65b8ba17
    • David Edmundson's avatar
      Merge branch 'Plasma/5.14' · 413bd53a
      David Edmundson authored
      413bd53a
    • David Edmundson's avatar
      [plugins/qpa] Add explanatory comment · 0b7778f9
      David Edmundson authored
      0b7778f9
    • David Edmundson's avatar
      [plugins/qpa] Don't crash on Qt5.12 OpengGL::makeCurrent · 6ebfa593
      David Edmundson authored
      Summary:
      QOpenGLContext was changed to call platform->makeCurrent before it
      called setCurrentContext.
      
      Because we bind window FBO and ultimately that calls
      QOpenGlContext::format we need Qt to know which context is current so it
      can tell us the format.
      
      This matches the QtWayland EGL code.
      
      BUG: 399392
      
      Test Plan:
      Switched virtual desktop with the OSD (previously reliably crashed)
      Now it doesn't
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15957
      6ebfa593
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 85bc931d
      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"
      85bc931d
  4. 04 Oct, 2018 9 commits
  5. 03 Oct, 2018 3 commits
  6. 02 Oct, 2018 5 commits
  7. 30 Sep, 2018 1 commit
  8. 29 Sep, 2018 2 commits
  9. 28 Sep, 2018 5 commits
    • Vlad Zahorodnii's avatar
      [effects/cube] Update cubecap texture · e822d27c
      Vlad Zahorodnii authored
      Summary: Current cubecap texture is an old KDE logo. Let's use something newer.
      
      Test Plan:
      Before:
      {F6282237}
      
      After:
      {F6282239}
      
      Before:
      {F6282372}
      
      After:
      {F6282375}
      
      Reviewers: #kwin, #plasma, #vdg, davidedmundson
      
      Reviewed By: #kwin, #plasma, davidedmundson
      
      Subscribers: davidedmundson, ngraham, broulik, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15726
      e822d27c
    • Vlad Zahorodnii's avatar
      [effects/slide] Delete redundant checks · 72ad5dc8
      Vlad Zahorodnii authored
      Summary:
      If isActive() returns false, neither paintScreen nor paintWindow nor
      postPaintScreen will be called.
      
      So, `if (m_active)` checks are redundant.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15708
      72ad5dc8
    • Vlad Zahorodnii's avatar
      [effects] Make scripted effects GHNS-able · 78ce54f8
      Vlad Zahorodnii authored
      Summary:
      Currently, if one wants to install a scripted effect from the KDE Store,
      the effect won't show up in the Desktop Effects KCM. The reason for that
      is kpackagetool5 doesn't know where to install effects (they have to be
      installed under ${DATA_DIR}/kwin/effects).
      
      Another problem is that even if the scripted effect is installed in the
      right directory (e.g. ~/.local/share/kwin/effects), it won't be listed in
      the Desktop Effects KCM because it doesn't have a desktop file in
      kservices5 dir. Please notice that the effect will be "visible" for KWin, i.e.
      you can enable it by editing kwinrc.
      
      This diff addresses those 2 problems by:
      * Adding a PackageStructure plugin for effects (so they are installed
        under kwin/effects/);
      * Using KPackage::PackageLoader to get list of scripted effect in the
        Desktop Effects KCM.
      
      Test Plan:
      * Installed an effect from the KDE Store, it appeared in the Desktop Effects
        KCM;
      * Removed it.
      
      Reviewers: #kwin, mart, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: ngraham, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15372
      78ce54f8
    • Vlad Zahorodnii's avatar
      [effects/showpaint] Use a shortcut to toggle the effect · 1de9648a
      Vlad Zahorodnii authored
      Summary:
      The Show Paint effect is useful when debugging repaint regions issued by
      effects. The only headache with it is necessity to enable/disable it.
      Consider the following workflow:
      
      * Do some change to an effect;
      * Compile KWin (or the effect);
      * Go to System Settings and enable the Show Paint effect;
      * Test effect, check repaint regions, etc;
      * Disable the Show Paint effect;
      * Go to the step 1.
      
      This workflow is really exhausting. Also, when testing repaints in a
      nested compositor, things become quite messy.
      
      Because purpose of this effect is to debug repaints (and because this
      effect is not meant for daily usage), I think that's fine to change
      how it's activated.
      
      This patch improves the workflow by changing the way how this effect
      gets activated. Instead of enabling/disabling it, one can just use a shortcut
      to activate or deactivate the effect.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: broulik, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15703
      1de9648a
    • Vlad Zahorodnii's avatar
      [effects] Move the Desktop Cube Animation effect to its own directory · fa6fa279
      Vlad Zahorodnii authored
      Summary: Just little tidying.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15725
      fa6fa279
  10. 24 Sep, 2018 3 commits
  11. 23 Sep, 2018 1 commit