1. 07 Nov, 2018 5 commits
    • Martin Flöser's avatar
      Start xclipboard sync process from build dir if available · 7221864c
      Martin Flöser authored
      Summary:
      The xclipboard sync test times out on build.kde.org as KWin is not
      installed prior to running the tests. This is due to KWin not finding
      the executable for the clipboard sync helper.
      
      This change looks whether the binary exists in the same directory as
      KWin's executable. If it exists it is started instead of the hardcoded
      path in libexec.
      
      Test Plan: Run the test and verified the correct binary is loaded
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16732
      7221864c
    • Martin Flöser's avatar
      Fix slidingpopupstest when run without installtion · f27f8a26
      Martin Flöser authored
      It tries to load scripted effects, so needs same adjustement.
      f27f8a26
    • Martin Flöser's avatar
      Fix FadeTest and TranslucencyTest when started without install · 43fc7f1b
      Martin Flöser authored
      Summary: Search in build dir for the effects.
      
      Reviewers: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16683
      43fc7f1b
    • Martin Flöser's avatar
      Fix test of scriptedeffectsloader when run from build directory without install · c36f9d29
      Martin Flöser authored
      Summary:
      On build.kde.org all tests loading scripted effects are failing. This
      seems to be because the effects are not installed.
      
      To make this work, this change introduces the following changes:
       * scripted effects are copied to ${build}/bin, like all binaries
       * the test sets XDG_DATA_DIRS env variable to point to ${build}/bin
      
      This change also needs to be added to further tests once this is
      accepted. Furthermore it could be considered whether KPackageLoader
      should consider the QCoreApplication::applicationDirPath in addition to
      the GenericDataLocation. This would make KPackageLoader work much better
      in a build tree only setup.
      
      Test Plan: Test passes locally, obviously not tried on build.kde.org
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16682
      c36f9d29
    • Martin Flöser's avatar
      Re-evaluate the window rules when the window class of a Client changes · a04b9da6
      Martin Flöser authored
      Summary:
      So far KWin did not re-evaluate the window rules when the Client's
      window class changes. Window class is the main (static) feature the rule
      selection is based on. For dynamic changing mapping features like caption
      KWin does re-evaluate the rules.
      
      The reason for KWin to not evaluate when the class changes is that KWin
      expects the class not to change. From ICCCM section 4.1.2.5:
      
       > This property must be present when the window leaves the Withdrawn
       > state and may be changed only while the window is in the Withdrawn
       > state. Window managers may examine the property only when they start
       > up and when the window leaves the Withdrawn state, but there should be
       > no need for a client to change its state dynamically.
      
      Unfortunately there are prominent applications such as Spotify which
      violate this rule and do change the window class dynamically. While this
      is a clear ICCCM violation there is nothing which really forbids it (may
      not != must not) and nothing which forbids KWin to react on changes.
      
      As also libtaskmanager started to react on it, it makes sense to also
      hook up the required bits for window rules. After all KWin detects
      changes to the window class for some time already and has the
      functionality to evaluate the rules. So all there is, is one connect
      which improves the situation for our users, while at the same time it
      should be rather risk free. If a setup window rule breaks after this
      change it's due to the client not being ICCCM compliant.
      
      Test Plan:
      I don't use any of the affected applications, so it's only
      tested with the new added unit test.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D16670
      a04b9da6
  2. 06 Nov, 2018 1 commit
  3. 05 Nov, 2018 10 commits
  4. 04 Nov, 2018 4 commits
  5. 02 Nov, 2018 2 commits
  6. 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
  7. 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
  8. 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
  9. 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