Commit Graph

15813 Commits (6ab625ed9770feae1924f43969ea63c5ef5ef0f5)

Author SHA1 Message Date
Martin Flöser 6ab625ed97 Ignore outputOnly QWindows for pointer and touch events
Summary:
The idea is to be output only, so also ignore for pointer and touch.
This is similar to the previous commit for keyboard events.

BUG: 386954

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9647
2018-01-03 21:15:34 +01:00
Martin Flöser f5f1f6ceb4 Don't send keyboard events to QWindows which have outputOnly property set
Summary:
PlasmaCore.Dialog has a property outputOnly. This is for example used in
KWin's OnScreenNotification. If that property is set KWin should not send
any key events to it, just like for windows with _q_showWithoutActivating.

BUG: 388112

Test Plan: Not yet

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9618
2018-01-03 21:13:23 +01:00
l10n daemon script 196423d267 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2018-01-03 06:51:15 +01:00
l10n daemon script 7effd6bf19 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2018-01-02 04:47:58 +01:00
Vlad Zagorodniy 20780c6f21 [effects/slide] Handle moving clients
Summary:
Currently, slide effect doesn't handle a case when there
is a moving client. This results in having window jumps.
This commit fixes it by fixing position of the moving client
during switching to another desktop.

Test Plan: * send window one desktop to the left/right using shortcuts

Reviewers: #kwin, #plasma, graesslin

Reviewed By: #kwin, #plasma, graesslin

Subscribers: graesslin, plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9487
2018-01-01 17:12:52 +02:00
Vlad Zagorodniy 8a02a802ae [effects/slide] Add 'Duration' option
Summary:
At the moment, there is no way to tweak duration of the slide animation.
This change adds a configuration module so it is possible to change
the duration.

Test Plan:
* enable virtual desktops
* go to `System Settings > Desktop Behaviour > Desktop Effects`
  and select Slide effect under "Virtual Desktop Switching Animation"
* click settings/options button and change duration

Reviewers: #kwin, #plasma, graesslin

Reviewed By: #kwin, #plasma, graesslin

Subscribers: graesslin, plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9382
2018-01-01 16:54:02 +02:00
l10n daemon script 880dd6dc0b SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-31 04:52:32 +01:00
l10n daemon script 6c6866a29a SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-30 04:46:59 +01:00
Nathaniel Graham 819230d495 Improve some strings and UI elements in KWin KCM
Summary:
BUG: 386571
BUG: 386574
BUG: 386576

Implemented some of @abetts' string change and UI suggestions in the above bugs.

Test Plan:
Tested in KDE Neon:

{F5540279}

{F5540277}

{F5540278}

Reviewers: abetts, #vdg, #kwin, davidedmundson, graesslin, apol

Reviewed By: abetts, #vdg, davidedmundson, apol

Subscribers: apol, jriddell, luebking, graesslin, kwin, abetts

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8682
2017-12-29 10:22:20 -07:00
l10n daemon script 50b948134c SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-28 04:45:41 +01:00
Martin Flöser a561f91d29 Add missing include
Fix build.
2017-12-27 09:50:39 +01:00
Martin Flöser e0b1a5715b Add DBus interface to OrientationSensor and a persistent configuration
Summary:
The initial state for user enabled is now read from config. In addition
a DBus interface is provided exporting this property. This allows
KScreen to determine whether automatic screen rotation is available and
whether the user has it enabled or not.

Furthermore KScreen can change the property and this gets stored into
the configuration. Thus KScreen can offer a user interface to
enable/disable automatic screen rotation as well as enabling/disabling
the manual rotation based on the current user settings.

Test Plan:
Not yet tested, coded on the system which doesn't have an
orientation sensor

Reviewers: #kwin, #plasma, sebas, davidedmundson

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8738
2017-12-26 22:02:47 +01:00
l10n daemon script 0abc5e020f SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-25 04:44:28 +01:00
Martin Flöser ff97938fbc Add missing include for std::round
We had a compile failure on openSuse on build.kde.org. This is a try to
fix the failure with adding the include.
2017-12-24 12:54:27 +01:00
Martin Flöser 68698b4201 [libinput] Find screen for touch screen devices and calibrate accordingly
Summary:
This change finds the screen for a touch screen device based on:
 * number available screens
 * output name defined on the touch screen device
 * internal screen
 * and physical size

The id of the screen is stored in the Device allowing to adjust the
touch points accordingly. This means instead of transferring to the
combined display size the touch points are transferred into the output
space and the position of the output is added. Thus in a multi screen
system the touch points are properly mapped to the output.

Furthermore the screen orientation is passed to the Device and a
calibration matrix is set accordingly. Thus a transformed screen has the
touch screen transformed accordingly.

Please note that this only affects libinput on Wayland and not on X11!
The x11 standalone platform needs to gain similar code.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8748
2017-12-23 10:18:55 +01:00
David Edmundson 965c30f4d4 Register a fake appmenu UI for the appmenu test 2017-12-22 17:23:44 +00:00
David Edmundson 2f9d0bd626 Expliit QString use with QCOMPARE.
Fix builds on older Qt.
2017-12-22 15:47:43 +00:00
David Edmundson ee28104c7a Port to new AppMenu iface
Plus test

Test Plan:
Ran kwin with menus and patched QPT
Ran test

Reviewers: graesslin

Reviewed By: graesslin

Subscribers: graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9262
2017-12-22 14:38:31 +00:00
l10n daemon script edb2654228 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-22 05:11:16 +01:00
Kai Uwe Broulik dab11a92f1 Drop warning about unimplemented Screens::scale
Otherwise spams your log telling you to implement it.
We don't support per-screen dpi on X and never will, so this is a pointless warning.

Differential Revision: https://phabricator.kde.org/D9080
2017-12-21 14:08:36 +01:00
l10n daemon script be4cde23ec SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-20 07:06:47 +01:00
Friedrich W. H. Kossebau 6e10f99d16 Remove no longer needed moc include 2017-12-19 02:19:37 +01:00
Milian Wolff cd544890ce Fix build with CMake 3.10
Looks like a classic false-positive, but this makes the compile
pass for me without making the code harder to read:

AutoMoc error
-------------
  "/ssd/milian/projects/kf5/src/kde/workspace/kwin/kcmkwin/kwinscripts/main.cpp"
The file contains a K_PLUGIN_FACTORY macro, but does not include "main.moc"!
Consider to
 - add #include "main.moc"
 - enable SKIP_AUTOMOC for this file

So we just add the include and then get rid of the duplicate
definition of the plugin factory and the problem is resolved.
2017-12-18 11:41:37 +01:00
l10n daemon script efac8c351e SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-18 04:56:07 +01:00
Roman Gilg dbdaf6c839 [Night Color] Check read in mode value
KConfigSkeleton does not check arbitrary enum values on being
correct. So we do it explicity in our code.

Reviewers: #kwin, graesslin

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9310
2017-12-15 00:50:34 +01:00
Roman Gilg 112d30b5d1 Fix BSD build 2017-12-13 12:07:59 +01:00
l10n daemon script 43f575b415 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-13 07:01:42 +01:00
Marco Martin 6b6875166f export org.kde.appmenuview
Summary:
drop the global settings and export the service wich will activate
the appmenu kded

Test Plan:
adding the menu button makes new apps export it,
removing it makes new apps using the interlal one again

Reviewers: #kwin, #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: ngraham, davidedmundson, broulik, plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9216
2017-12-12 15:06:31 +01:00
l10n daemon script 7ac8a30cd6 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-12 04:41:56 +01:00
Roman Gilg 82d2860469 [colorcorrection] Night Color - blue light filter at nighttime
With Wayland KWin needs to provide certain services, which were provided
before that by the Xserver. One of these is gamma correction, which includes
the - by many people beloved - functionality to reduce the blue light at
nighttime. This patch provides the KWin part of that. It is self contained,
but in the end will work in tandem with a lib in Plasma Workspace and a KCM
in Plasma Desktop, which can be used to configure Night Color.

* Three modi:
** Automatic: The location and sun timings are determined automatically
   (location data updates will be provided by the workspace)
** Location: The sun timings are determined by fixed location data
** Timings: The sun timings are set manually by the user
* Color temperature value changes are smoothly applied:
** Configuration changes, which lead to other current values are changed
   in a quick way over a few seconds
** Changes on sunrise and sunset are applied slowly over the course of few
   minutes till several hours depending on the configuration
* The current color value is set immediately at startup or after suspend
  phases and VT switches. There is no flickering.
* All configuration is done via a DBus interface, changed values are tested
  on correctness and applied atomically
* Self contained mechanism, speaks directly to the hardware by setting the
  gamma ramps on the CRTC
* Currently working on DRM backend, extensible to other platform backends in
  the future
* The code is written in a way to make the classes later easily extendable to
  also provide normal color correction, as it's currently done by KGamma on X

Test Plan:
Manually with the workspace parts and added integration tests in KWin using
the virtual backend.

BUG:371494

Reviewers: #kwin, graesslin

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5928
2017-12-11 10:58:40 +01:00
l10n daemon script c9023582aa SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-10 04:43:39 +01:00
David Edmundson 1d3d4b1013 Cleanup color scheme manager part of KCM Deco code
Summary:
PreviewCient is internal to the KCM, it's not used by actual decorations
where we need API compatibility.
This property is not used by the KCM.

The current code parses every color scheme config file for every
decoration. This is one of the big contributing factors to this KCM
being a bit sluggish.

It was effectively deprecated in 2015 when a decoration palette was
introduced. If we wanted to add colorscheme functionality in the KCM,
we'd use that instead at a previewclient level.

Test Plan:
Found this was a problem with hotspot
Grepped code for usage
Ran KCM

Reviewers: #plasma

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9239
2017-12-09 00:16:13 +00:00
Eike Hein 06a9a2a468 Add missing lower and upper bounds to the rows spinbox.
Summary:
0 rows makes no sense.

Setting than 20 rows make no sense when the number of desktops
is limited to 20.

BUG:387594

Reviewers: #plasma, graesslin

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9199
2017-12-05 21:55:20 +09:00
l10n daemon script b65d504a49 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-05 05:00:30 +01:00
Martin Flöser 8a2796d280 Fix regression from KWin 5.9 regarding quick tiling
Summary:
The regression got introduced with 9934f5b575.
The order when setMaximize(false, false) was called changed in regard to
when the quick tiling mode was adjusted. But just changing the ordering
back was no solution as that would cause regressions in other areas
(unit tests fail).

This change builds up on the support for geometry update blocker on
Wayland to be able to better support this situation without causing
further regressions.

Also this change rethinks the code area. There is an idea behind
temporarily setting the quick tile mode to none and that is even
documented in a comment: it should not confuse maximize. So let's do
exactly that: call the maximize in the block where the quick tile
mode is temporarily wrong. As that is only one branch the else branch
performs the same steps.

BUG: 376104
FIXED-IN: 5.12.0

Test Plan: Confirmation in bug report that patch fixes issue

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9178
2017-12-04 17:25:40 +01:00
Martin Flöser a8be959b8f Implement geometry update blocking in ShellClient
Summary:
Commit 188491d392 introduced a regression
in ShellClient and broke the QuickTiling test - sorry about that.

This change fixes the failing test. The main reason was a slight change
in semantics of setGeometry. But the real problem is/was that the
geometry update blocking is not supported in ShellClient.

This change brings in the checks from Client to ShellClient, thus that
the geometry is properly blocked and when unblocked the geometry is
updated correctly or a request is sent. What makes it rather difficult is
that the geometry update blocker operates on an updated geom while
ShellClient::setGeometry needs to compare to the original geom to
determine whether a direct update or a request is required.

Thanks to supporting geometry update blocking the changeMaximize calls
are adjusted to use setGeometry instead of requestingGeometry directly.

Overall this is an important improvement and might also allow us to no
longer require the special RequestGeometryBlocker in ShellClient.

Test Plan: Tests pass

Reviewers: #plasma, #kwin

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8956
2017-12-04 17:24:22 +01:00
Martin Flöser fe9664fd84 Use the new ECMQMLModules to specify all of KWin's runtime dependencies
Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D7273
2017-12-03 18:03:34 +01:00
Martin Flöser 724ecaf1e9 Fix possible heap-use-after-free in idle inhibition handling
Thanks to build.kde.org for detecting and reporting this issue.
2017-12-03 18:01:43 +01:00
Kai Uwe Broulik 545dda7208 [PaintClipper::Iterator] Operate on QRegion instead of QVector of rects
Differential Revision: https://phabricator.kde.org/D9135
2017-12-03 16:14:53 +01:00
l10n daemon script c04c285b6a SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-12-03 04:50:14 +01:00
Kai Uwe Broulik 9e8773cb43 [Contrast / Blur Effects] Port from QRegion::rects() to QRegion iterators
Especially the BlurEffect::expanded() method is called a lot.
Saves creating a temporary QVector.

Differential Revision: https://phabricator.kde.org/D9101
2017-12-02 17:38:14 +01:00
Kai Uwe Broulik c3d41046a1 [Scene] Port from QRegion::rects() to QRegion iterators
ALso add a reserve() call

Differential Revision: https://phabricator.kde.org/D9087
2017-12-02 10:05:45 +01:00
Kai Uwe Broulik e9a2124669 [SceneOpenGL] Port from QRegion::rects() to QRegion iterators
This code path is executed a lot. Saves creating a temporary QVector.

Differential Revision: https://phabricator.kde.org/D9081
2017-12-02 10:05:04 +01:00
Kai Uwe Broulik 873d38225e [GLVertexBuffer] Port from QRegion::rects() to QRegion iterators
This code path is executed a lot during animations (e.g. maximize, minimize).
Saves creating a temporary QVector.

Differential Revision: https://phabricator.kde.org/D9082
2017-12-02 10:04:22 +01:00
Martin Flöser ff2e883469 Add support for new IdleInhibition protocol
Summary:
A small helper class is added which manages inhibiting idle for the
ShellClients. So far only very basic functionality is added. That is
only the inhibition on the Surface is followed. It is not yet checked
whether the ShellClient is visible at all. That needs some changes in
ShellClient.

BUG: 385956
FIXED-IN: 5.12

Test Plan: New test case passes

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8856
2017-11-30 21:51:36 +01:00
l10n daemon script de22fc9ab7 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-11-29 07:51:37 +01:00
l10n daemon script 66039108a3 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2017-11-28 05:09:33 +01:00
Kai Uwe Broulik 11e95d5de1 Honor animationsSupported in minimize, slide and sliding popups effects
Differential Revision: https://phabricator.kde.org/D8938
2017-11-23 10:34:06 +01:00
Martin Flöser 1c61e61119 [autotests] Support new way to run the tests without need to install
Summary:
KWin was quite good in ensuring that you don't need to install by
passing paths to the tests. The new way is much nicer, so code is
adjusted for the new way. Also if we require a newer ECM in future we
need to support the new way.

No guarantee that the tests don't pick something up from the system env,
that needs more testing.

References: https://community.kde.org/Guidelines_and_HOWTOs/Making_apps_run_uninstalled

Test Plan: The tests which loaded helpers pass

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D7543
2017-11-21 20:34:52 +01:00
Martin Flöser f8be3f746b [effects] Delay creation of EffectFrames in WindowGeometryEffect
Summary:
Without Xwayland KWin starts so fast that the creation of the EffectFrame
triggers a crash in the Wayland integration as the KWin internal
connection isn't fully setup.

To workaround this crash the creation of the EffectFrame is delayed till
the first usage. It doesn't make sense to try to fix the actual crash as
it would require to defer the creation of all Effects.

Test Plan: New test case added which crashes without this fix.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8821
2017-11-21 19:28:00 +01:00