1. 04 Nov, 2018 2 commits
  2. 02 Nov, 2018 2 commits
  3. 01 Nov, 2018 6 commits
    • Martin Flöser's avatar
      Support enabling numlock on startup · 7c3a851b
      Martin Flöser authored
      Summary:
      This change brings improved num lock support to KWin. The modifier state
      is read and also mapped to Qt::KeyboardModifiers. Furthermore the input
      config is read and the NumLock key is evaluated. If the requested state
      does not match the current num lock state the state is swapped.
      
      BUG: 375708
      FIXED-IN: 5.15
      
      Test Plan: New unit test added, no manual test due to lack of hardware
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16428
      7c3a851b
    • David Edmundson's avatar
      [wayland] Use the new plasma virtual desktop protocol · 7e8facc3
      David Edmundson authored
      Summary:
      implement virtual desktop support for Wayland.
      use the new virtual desktop protocol from D12820
      The VirtualDesktopManager class needed some big change in order
      to accomodate it, which is where most changes are.
      Other than that, it's mostly connections to wire up
      VirtualDesktopsManager and VirtualDesktopsManagement(the wayland protocol impl)
      
      Depends on D12820
      Other notable detail, is the client visibility updated to reflect the presence
      of the client in the plasmavirtualdesktop.
      (and the unSetDesktop concept)
      
      Test Plan: used a bit a plasma session together with D12820, D13748 and D13746
      
      Reviewers: #plasma, #kwin, graesslin, davidedmundson
      
      Reviewed By: #plasma, #kwin, davidedmundson
      
      Subscribers: hein, zzag, davidedmundson, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T4457
      
      Differential Revision: https://phabricator.kde.org/D13887
      7e8facc3
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.14' · e0aa3a30
      Vlad Zahorodnii authored
      e0aa3a30
    • Vlad Zahorodnii's avatar
      Flush kwinrulesrc in RuleBook::save · 95ff4a2d
      Vlad Zahorodnii authored
      Summary:
      a02797ca missed sync call to actually
      write rules to disk.
      
      BUG: 399778
      FIXED-IN: 5.14.3
      
      Test Plan: Changed opacity in Special Window Settings.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16580
      95ff4a2d
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · d0dd60f0
      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"
      d0dd60f0
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · a5b03f74
      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"
      a5b03f74
  4. 31 Oct, 2018 6 commits
    • Vlad Zahorodnii's avatar
      [libkwineffects] Don't enable painting for windows that are not kept alive · 1b7cad95
      Vlad Zahorodnii authored
      Summary:
      862bf0f1 introduced a regression(sorry
      for that): if you close a confirmation dialog(with the Scale effect and the
      Dialog Parent effect being enabled), the main window(s) will flicker.
      
      That flickering happens because the C++ version of the Scale effect and
      AnimationEffect unref deleted windows in different places. AnimationEffect
      unrefs deleted windows in prePaintScreen, which btw is not the best
      place to do that. The C++ version unrefed windows in postPaintScreen.
      
      So, when the Scale effect has finished animating the main windows, it
      will unref them, but windowDeleted signal won't be emitted immediately.
      Which means that the Dialog Parent won't be able to delete corresponding
      animations on its side and main windows will be painted for a single
      frame.
      
      This change addresses flickering by adjusting prePaintWindow in
      AnimationEffect so deleted windows won't be painted if none of
      animations keeps them alive.
      
      Test Plan:
      (make sure that both the scale and the dialog parent effect are enabled)
      * Go to System Settings > Application Style > Window Decorations;
      * Select a decoration that is different from the current;
      * Close the system settings window (don't click "Apply" button);
      * When a dialog is shown, click "Discard" or "Apply" button.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16542
      1b7cad95
    • Nate Graham's avatar
      [KCMs] move GHNS buttons to the normal location · 9a59e3fb
      Nate Graham authored
      Summary:
      All other KCMs have their {nav Get New [things]...} buttons in the bottom-right corner. This patch adjusts KWin's KCMs to adopt the same convention there too.
      
      With this patch, all KCMs will have their GHNS buttons in the same location.
      
      Closes T9954
      
      Test Plan:
      {F6375278}
      
      {F6375277}
      
      {F6375276}
      
      {F6375275}
      
      Reviewers: #kwin, #vdg, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: Codezela, kwin, kde-doc-english
      
      Tags: #kwin, #documentation
      
      Maniphest Tasks: T9954
      
      Differential Revision: https://phabricator.kde.org/D16537
      9a59e3fb
    • Frederik Gladhorn's avatar
      Remove unused captures from lambdas · abceccbb
      Frederik Gladhorn authored
      Reviewers: davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16481
      abceccbb
    • Frederik Gladhorn's avatar
      Remove dead default branches · 04bbe100
      Frederik Gladhorn authored
      Summary:
      The switch statements iterated over all possible enum values.
      When a new enum value is added, it will generate a compiler warning this way.
      
      Reviewers: davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16480
      04bbe100
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 8154ba1c
      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"
      8154ba1c
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · b0717323
      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"
      b0717323
  5. 30 Oct, 2018 4 commits
    • David Edmundson's avatar
      [kcmkwin/kwindesktop] Fix global shortcut's display name for kwin changing · ce32b031
      David Edmundson authored
      Summary:
      KGlobalAcceld stores actions grouped by ID and a single display name.
      When an action with a given id changes, the display names change for all
      actions in that
      group.
      
      The KCM sets the ID to "kwin" but does not explicitly set a display
      name. This means it is automatically deduced which will be kcmshell or
      systemsettings.
      
      The end result is all kwin shortcuts get renamed in system setting's
      global shortcuts UI until kwin is restarted.
      
      This patch explicitly sets the dispay name.
      
      BUG: 400248
      Fixed-in: 5.15.0
      
      Test Plan:
      Changed virtual desktops
      Checked global shortcut settings still listed kwin as kwin
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16418
      ce32b031
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.14' · bdcd42d8
      Vlad Zahorodnii authored
      bdcd42d8
    • Vlad Zahorodnii's avatar
      [effects/desktopgrid] Don't display the close button from Present Windows · 558b86e9
      Vlad Zahorodnii authored
      Summary:
      If you activate the Present Windows effect and then the Desktop Grid,
      you'll be able to see the close button from PW. The reason for that is
      PW doesn't destroy the close button and DG doesn't filter it out.
      
      This patch addesses this problem by syncing DesktopGridEffect::isRelevantWithPresentWindows
      with PresentWindowsEffect::isSelectableWindow.
      
      On X11, the close button is filtered by the isSpecialWindow check. On
      Wayland, the close button is filtered by the acceptsFocus check.
      
      The proposed solution is kinda hack-ish, but on the other hand, we have
      to keep those two methods in sync anyway.
      
      In addition to the close button, notifications won't be displayed too.
      
      BUG: 364710
      FIXED-IN: 5.14.3
      
      Test Plan:
      * Activate the Present Windows effect;
      * Activate the Desktop Grid effect;
      * (the close button is no longer visible)
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16513
      558b86e9
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · c0344daa
      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"
      c0344daa
  6. 29 Oct, 2018 2 commits
    • Vlad Zahorodnii's avatar
      [effects/scale] Port to JavaScript · 862bf0f1
      Vlad Zahorodnii authored
      Summary:
      Now, when the scripting effects API has all required ingredients to port
      the Scale effect to JavaScript we finally can do it.
      
      The main rationale for porting this effect to JavaScript is that
      scripted effects API lets us focus more on what we want instead of
      "how".
      
      Visually, the ported version doesn't deviate from the C++ version.
      
      Test Plan:
      * Enable the Scale effect;
      * Open/close a window.
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16478
      862bf0f1
    • Vlad Zahorodnii's avatar
      [scripting] Allow effects to grab windows · 8d0554e4
      Vlad Zahorodnii authored
      Summary:
      Some JavaScript based effects need to grab particular windows in order
      to avoid conflicts with other effects.
      
      Example usage:
      
      ```lang=js
      effects.windowAdded.connect(function (window) {
          if (effect.grab(window, Effect.WindowAddedGrabRole)) {
              window.coolWindowTypeAnimation = animate({
                  ...
              });
          }
      });
      ```
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: romangg, graesslin, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D13153
      8d0554e4
  7. 28 Oct, 2018 8 commits
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.14' · 6c5d7ef2
      Vlad Zahorodnii authored
      6c5d7ef2
    • Vlad Zahorodnii's avatar
      8fa1537d
    • Erik Kurzinger's avatar
      [effects/presentwindows] Avoid potential freeze during fill-gaps · 4348cd56
      Erik Kurzinger authored
      Summary:
      When using the natural layout algorithm with the fill-gaps option, a small
      error (less than one) is introduced in windows' aspect ratio each time they are
      enlarged due to floating-point roundoff.
      
      Currently, the algorithm computes the width and height enlargement factors and
      then attempts to enlarge in each of the four possible directions, repeating
      until it can't enlarge any windows any further.  Hence, this aspect ratio error
      can be multiplied by up to four. Especially for small, long, and narrow
      windows, this can result in a total error of greater than one by the end of
      that loop iteration. If this occurs, on subsequent iterations the height
      enlargement factor might then be computed as negative violating some of the
      core assumptions of the algorithm and resulting in the loop iterating endlessly
      until one of the window dimensions overflows, freezing the program for up to
      several minutes.
      
      To fix this, the height enlargement factor should be re-computed based on the
      new width each time the window is enlarged, ensuring the error introduced in
      the aspect ratio never exceeds one.
      
      BUG: 364709
      BUG: 380865
      BUG: 368811
      
      FIXED-IN: 5.15.0
      
      Test Plan:
      The most reliable way to reproduce the freeze seems to be to activate the
      desktop-grid effect while a tool-tip window is fading in.
      Ensure desktop-grid is configured to use present windows, and that present
      windows is configured to use the natural layout algorithm with the fill gaps
      option selected.
      
      The freeze is still intermittent, but using this method should be able to be
      triggered within about 10 tries without this fix.
      After applying the fix, the freeze has never been observed.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: graesslin, kwin, zzag
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16278
      4348cd56
    • David Edmundson's avatar
      [desktopchangeosd] Sync desktop switch OSD font size to Plasma OSD font size · fe07909c
      David Edmundson authored
      Summary:
      Plasma's OSDs for volume/screens etc use PlasmaExtras.Heading, this
      should to.
      
      Also correct centering text to constrain the text element and align the
      text within that bounding box. Previous code could have overflown in the
      event of a really really long desktop name if we're resizing to the
      grid.
      
      BUG: 356600
      
      Test Plan:
      Switched desktop with OSD on
      Tried with and without "show desktop layout indicators"
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16420
      fe07909c
    • Frederik Gladhorn's avatar
      Minor grammar fixup in comment · 951dfd10
      Frederik Gladhorn authored
      951dfd10
    • Frederik Gladhorn's avatar
      Remove extra semicolon · 7d1d28ea
      Frederik Gladhorn authored
      7d1d28ea
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 5d22ad68
      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"
      5d22ad68
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 8d5bb96b
      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"
      8d5bb96b
  8. 27 Oct, 2018 3 commits
  9. 26 Oct, 2018 7 commits
    • Vlad Zahorodnii's avatar
      [effects] Recreate shell client connections after compositor settings have been changed · 722af021
      Vlad Zahorodnii authored
      Summary:
      If the animation speed was changed, then EffectsHandler will be destroyed
      and created again.
      
      Because we don't create connections to monitor state of Wayland clients
      in EffectsHandler constructor, effects like the Magic lamp won't work
      after changing compositor settings.
      
      BUG: 400240
      
      Test Plan:
      * Changed animation speed;
      * Minimized a Wayland client.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16401
      722af021
    • David Edmundson's avatar
      Use consistent size icon in OSD · 110fa039
      David Edmundson authored
      Summary:
      The OSD's icon is based on the implicitSize of the IconItem.
      
      For most icons this will be a hardcoded value from
      KIconLoader::global()->currentSize
      
      However, since bc33f0470d4d6bcbf30475f85b36705e8a99528b in
      plasma-framework we sometimes return that value, sometimes will return the
      source size of the underlying image depending on internal paths of how
      the icon is loaded and whether it was in the plasma theme or not.
      
      This patch overrides the implicitWidth given to the layout to be the
      standard icon size.
      
      BUG: 400083
      
      Test Plan:
      Loaded the force kill window OSD.
      Icon still looked the same size on breeze.
      
      I didn't reproduce the issue in the bug
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16432
      110fa039
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.14' · a60edb50
      Vlad Zahorodnii authored
      a60edb50
    • Vlad Zahorodnii's avatar
      e4c399a6
    • Erik Kurzinger's avatar
      [effects/desktopgrid] Specify screen projection matrix when drawing moving window · 408ed806
      Erik Kurzinger authored
      Summary:
      Currently, when the user is moving a window in the desktop grid it is drawn from
      the paintScreen function to ensure it appears above all other windows. However,
      when drawing the window, the screenProjectionMatrix for the WindowPaintData structure
      is never specified. Because of this, the window will not be visible if OpenGL
      compositing along with Lanczos scaling are in use since its coordinates will never
      be projected into screen-space (unless the window is maximized, in which case the
      scaling code is bypassed).
      
      BUG: 361371
      BUG: 364509
      
      FIXED-IN: 5.14.3
      
      Test Plan:
      Ensure OpenGL compositing is enabled and the scaling method is set to "Accurate" on
      hardware supporting this option. Additionally, ensure the desktop grid effect is
      active and is configured to use Present Windows. Open a window and ensure is it not
      maximized. Click on the window and drag it around - its contents should remain visible
      the entire time and follow the mouse.
      
      Reviewers: #kwin, zzag, graesslin, davidedmundson
      
      Reviewed By: #kwin, zzag, davidedmundson
      
      Subscribers: broulik, davidedmundson, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16430
      408ed806
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.14' · d9eb0e77
      Vlad Zahorodnii authored
      d9eb0e77
    • Erik Kurzinger's avatar
      [effects/desktopgrid] Specify screen projection matrix when drawing moving window · 91b53810
      Erik Kurzinger authored
      Summary:
      Currently, when the user is moving a window in the desktop grid it is drawn from
      the paintScreen function to ensure it appears above all other windows. However,
      when drawing the window, the screenProjectionMatrix for the WindowPaintData structure
      is never specified. Because of this, the window will not be visible if OpenGL
      compositing along with Lanczos scaling are in use since its coordinates will never
      be projected into screen-space (unless the window is maximized, in which case the
      scaling code is bypassed).
      
      BUG: 361371
      BUG: 364509
      
      FIXED-IN: 5.14.3
      
      Test Plan:
      Ensure OpenGL compositing is enabled and the scaling method is set to "Accurate" on
      hardware supporting this option. Additionally, ensure the desktop grid effect is
      active and is configured to use Present Windows. Open a window and ensure is it not
      maximized. Click on the window and drag it around - its contents should remain visible
      the entire time and follow the mouse.
      
      Reviewers: #kwin, zzag, graesslin, davidedmundson
      
      Reviewed By: #kwin, zzag, davidedmundson
      
      Subscribers: broulik, davidedmundson, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16430
      91b53810