Commit graph

16622 commits

Author SHA1 Message Date
Eike Hein
cee5ea7819 [kcmkwin/desktop] KCM using new virtual desktops DBus interface
Summary:
A rewrite of the Virtual Desktops KCM using the new DBus
API.

Depends on D13887.

Reviewers: mart, davidedmundson, ltoscano, zzag

Subscribers: davidedmundson, broulik, plasma-devel, kwin

Tags: #kwin

Maniphest Tasks: T4457

Differential Revision: https://phabricator.kde.org/D14542
2018-12-18 16:42:19 +09:00
Martin Flöser
9993c6d674 Add a dbus method getWindowInfo returning same data as queryWindowInfo
Summary:
This dbus method is intended to be used by the kwin rules dialog. KWin
can pass the internal id to the rules dialog through a command line
argument (or similar way) and the dialog can query the information
through the dbus call for the provided id. Thus it's possible to
implement one way to query the information which works on both X11 and
Wayland without any windowing system specific functionality.

Test Plan: See new added integration test

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17433
2018-12-17 18:12:17 +01:00
Martin Flöser
c20be6e0f1 Introduce a new HACKING.md document to replace the previous HACKING
Summary:
This document describes my own practices on how I develop and work on
KWin. Since we have nested KWin/Wayland my ways of developing completely
changed. Especially since it's possible to run without installing. Due
to that I thought it's a good idea to document how one can easily build
and run KWin.

Why a new document in the source tree instead of the wiki?

The main reason for using a wiki was that it allows to format, to link,
etc. This was prior to markdown and prior to code hosting places like
github or phabricator rendering the markdown pages. Given that I think
the information belongs in the repository and not in an external wiki.

Why not fix the existing page?

Our documentation on the wiki is quite outdated:
 * Qt 4 based
 * only X11
 * reviewboard
 * information about file structure which does not match reality

Especially the last point is where I think we need to do a clean cut and
just drop such information. Documentation about code belongs in the code
and not detached in wiki. It will outdate.

How to prevent this document will not become outdated?

Of course difficult. But I tried to not describe anything which might
change, such as file layout, etc.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17600
2018-12-17 18:11:59 +01:00
Martin Flöser
28a52b2fd9 Drop the COMPLIANCE file
Summary:
This file has not been tracked for years. Nobody added when new features
were added, when existing code was broken, etc. E.g. none of the changes
since EWMH 1.4 is listed, none of the kde specific extensions is listed.

The document does not contain anything about Wayland protocol support.

I would not trust this document at all to say whether KWin is compliant,
but would check the source code. And after all most of the compliance is
done in KWindowSystem and KWayland, not in KWin.

Also the document lists compliance of other non-KWin elements such as
Qt, kicker (kde 3 thing, not application launcher), etc. This shows it's
also something which doesn't belong in KWin's source tree.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17601
2018-12-15 13:28:18 +01:00
Vlad Zagorodniy
7a28e0fe9a [wayland] Minimize transients together with parent
Summary:
If a parent window is minimized, then its transients have to be
minimized as well, so the minimize behavior is the same on both
X11 and Wayland.

BUG: 401950
FIXED-IN: 5.15.0

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17570
2018-12-14 21:15:58 +02:00
Vlad Zagorodniy
e86d8461ed [autotests] Test window open/close animations
Summary:
The idea behind this autotest is to verify that different window
open/close animation effects behave similarly.

Currently, we just check whether Fade/Glide/Scale effect tries to animate
the appearing or the disappearing of toplevels. In the future, the
autotest will be extended to verify that there are no conflicts between
those three effects and the Login/Logout effect, etc.

Test Plan: Ran the test, found a bug in the Fade effect, fixed it.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17526
2018-12-14 21:11:42 +02:00
Vlad Zagorodniy
54bf5f1af6 [libkwineffects] Don't mark a painted window as transformed twice
Summary:
WindowPrePaintData::setTransformed sets PAINT_WINDOW_TRANSFORMED,
so `data.mask |= PAINT_WINDOW_TRANSFORMED;` is redundant.

Test Plan: Minimized a window, haven't noticed visual glitches.

Reviewers: #kwin, davidedmundson, graesslin

Reviewed By: #kwin, davidedmundson, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17565
2018-12-14 21:10:33 +02:00
Vlad Zagorodniy
17358796ab [libkwineffects] Bump API version
Summary:
Recently, libkwineffects got some changes that break ABI compatibility,
so we have to bump the API version.

Test Plan:
When using a binary effect, which is made against 226 version, KWin no
longer crashes.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17444
2018-12-14 21:09:13 +02:00
Vlad Zagorodniy
caf0c93864 [effects] Don't use dynamic_cast
Summary:
qobject_cast has several advantages over dynamic_cast:
* it works without RTTI;
* it's usually faster.

Also, when it comes to casting QObjects, qobject_cast is de facto
standard.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17427
2018-12-14 21:04:40 +02:00
Vlad Zagorodniy
3dff1a8a67 [effects] Drop static_cast in getMainWindows
Summary:
We use a function template, so static_cast in getMainWindows looks out
of place. Also, it's not good idea to do static_cast based on output of
isDeleted().

Test Plan: The Dialog Parent effect works.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17426
2018-12-14 21:04:36 +02:00
Martin Flöser
c3e712e967 Fix the X11TimestampUpdateTest
Summary:
It also searches for the platform plugin, so we need to ensure it finds
it in the build directory.

This was a regression caused by building all platform plugins in the
correct location.

Test Plan: strace on the failing test, verified correct plugin is loaded

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17573
2018-12-14 17:11:15 +01:00
Vlad Zagorodniy
a0fe38c9b3 [wayland] Send only clients that were on the removed desktop to a new desktop
Summary:
Currently, if a virtual desktop was removed, then we'll try to send all
clients to the last virtual desktop even though most of those clients
weren't present on the removed virtual desktop.

Test Plan: Manually.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17576
2018-12-14 14:22:30 +02:00
Martin Flöser
3e62f6aabe Remove no longer needed cast to Client in Workspace::sendClientToDesktop
Summary:
This change removes a small difference between X11 and Wayland clients.
It ensures that all transients are sent to the same desktop as the main
window. A similar check is already in AbstractClient::setDesktop, so in
general it already worked. This is just a special case for
sendClientToDesktop which supports sending to the same desktop so that
all transients are sent to that desktop.

Test Plan: New test case which fails without this change

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17546
2018-12-13 19:36:28 +01:00
Martin Flöser
ba0cf19286 Fix dbus export of property Device::supportedButtons
Summary:
When launching the touchpad kcm we see the following warning:
    Error on d-bus read of "supportedButtons"

And the Gui shows "Error while loading values. See logs for more
information. Please restart this configuration module".

By extending the unit test for reading back the properties through DBus
I noticed that it's not trivially possible to export QFlags to DBus. As
the QFlags can be implicitly casted to int, the property is changed to
an int value.

Test Plan: Test case adjusted, did not pass prior to change, passes now.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17472
2018-12-13 19:36:28 +01:00
Martin Flöser
c8ede9a5ff Build platform plugins in correct sub directory of build dir
Summary:
This brings KWin a step closer to be run from build dir without having
to install at all. The integration tests are adjusted so that the
virtual platform is still found which makes the code be closer to what
is used in normal kwin_wayland.

Test Plan: ctest passes, manually verified correct plugin is loaded

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17388
2018-12-13 19:36:28 +01:00
Martin Flöser
a0b482cbab Introduce a command line option to disable any kind of global shortcuts
Summary:
This command line option is useful for KWin in embedded use case. That
is when KWin is just used as a compositor for one application instead of
a complete desktop environment. In such a setup global shortcuts are not
wanted and interfere with the application. E.g. one does not want Alt+F4
to close the window, that would render the system unusable.

This change introduces a command line option and disables the following
event filters and spies:
 * global shortcuts
 * modifier only shortcuts
 * terminate session
 * virtual terminal switching
 * screen edges

KGlobalAccel still gets inited, otherwise the (non-functional) binary
would be launched when KWin registers it's global shortcuts.

Test Plan:
New test added based on existing tests for the global
shortcuts, ctest passes

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17304
2018-12-13 19:36:28 +01:00
Martin Flöser
070b46f455 Hide mouse cursor when interacting with touch screen
Summary:
On touch events the mouse cursor gets hidden, on next mouse event the
mouse cursor is shown again. This IMHO significantly improves the system
interaction if touch is the primary user interface.

Test Plan: Test case added and ctest passes

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17280
2018-12-13 18:55:46 +01:00
Roman Gilg
dd55a59d81 Leave decoration on touch up only once
With 05ca6c97f8 removing all touch points always induces
an at surface change to null. But the decoration leave event
is already sent in the decoration input filter. Do not send
it again in the cleanup function.

This makes the decoration input test pass again.

Reviewed by David Edmundson as part of review of 05ca6c97f8.
2018-12-13 11:06:08 +01:00
Roman Gilg
05ca6c97f8 Unset touch targets on no current touch points
Summary:
Certain input devices like touch screens can be in a state of having no input
target at all. In case of touch screens when there are no current touch points.

In this case unset and block at-surface targets until a touch point is
available again.

Test Plan: Auto test window-selection passes again.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: graesslin, davidedmundson, zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17537
2018-12-13 10:59:07 +01:00
l10n daemon script
e14a523ef0 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-12-12 06:11:35 +01:00
Björn Feber
787c39cd42 [kcmkwin/compositing] Remove effect list item selection, fix list item size after hiding the effect video, use a real button as the play button and use the right busy indicator
Summary:
Makes some improvements to the Effects KCM (details in title).
{F6464106}
{F6464355}

Test Plan: Open the Effects KCM.

Reviewers: #kwin, #vdg, ngraham, davidedmundson

Reviewed By: #kwin, #vdg, ngraham, davidedmundson

Subscribers: davidedmundson, ngraham, #vdg, kwin, #kwin

Tags: #kwin, #vdg

Differential Revision: https://phabricator.kde.org/D17416
2018-12-11 08:01:46 -07:00
Laurent Montel
3feb08ec71 Use https url 2018-12-11 07:15:15 +01:00
l10n daemon script
5a2514fc8c 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-12-11 05:37:58 +01:00
Marco Martin
4001834da8 fix virtual keyboard on Plasma Mobile
Summary:
the newly introduced resize button shouldn't be visible on the phone and
for some reason using a ToolButton prevents the qml to load at all on
the phone (the problem seems right into the C++ part of ToolButton as
is broken on every QQC2 style)

Test Plan: work again on phone, still work on laptop

Reviewers: #plasma, bshah

Reviewed By: #plasma, bshah

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17483
2018-12-10 16:50:06 +01:00
Bhushan Shah
533f43ad02 Make it easier to debug the virtualkeyboard
Summary:
Provide the important debug messages which can be used to debug why
virtualkeyboard is not starting.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17454
2018-12-10 16:28:13 +05:30
Shubham Jangra
16e904592a Remove comparison between signed and unsigned integer expressions warning 2018-12-10 01:11:34 +05:30
l10n daemon script
982d7cc438 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-12-07 05:29:42 +01:00
Vlad Zagorodniy
3956d6ab4a [autotests] Fix failing of testDontCrashReinitializeCompositor
Summary:
Currently, testDontCrashReinitializeCompositor is unstable because it
doesn't take into account that effects can be loaded asynchronously.

In general, we don't need all default effects in this test, so let's
disable them.

Test Plan: This should fix ASan issues.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17386
2018-12-06 19:42:23 +02:00
David Edmundson
576c667124 Avoid deleting ourselves midway through updateShadow
Summary:
If updating a shadow means that there should be no shadow, shadow ends
up deleting itself midway through the method.

It's cleaner and safer to leave that to the caller.

This new change matches the existing documentation for
Shadow::updateShadow which states

> In case the Property has been withdrawn the method returns @c false.
> In that case the owner should delete the Shadow.

Test Plan:
Created an ASAN of kwin
Relevant testMaximised no longer fails

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17380
2018-12-06 12:55:12 +00:00
Vlad Zagorodniy
90a26e2e8d Try to invalidate quad cache when shadow is changed
Summary:
213239a0ea tried to address the case when
a wayland client gets shadow after it was mapped, but because of poor
testing from my side, another bug was introduced. If a decoration tooltip
or the user actions popup is shown, then in some cases it can be blank.

Usually, SurfaceInterface::shadowChanged proceeds SurfaceInterface::sizeChanged,
so when the shadow is installed, window quads cache is rebuilt. But
because shell client already knows the geometry of the internal client,
goemetryShapeChanged is not emitted, thus the cache is not updated.

It would be better just to invalidate the cache when the shadow is
installed, uninstalled, or updated. This reduces the number of
unnecessary invocations of Scene::Window::buildQuads and also moves
handling of the window quads cache away from the Shadow class.

BUG: 399490
FIXED-IN: 5.15.0

Test Plan: Decoration tooltips are no longer blank.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17215
2018-12-05 20:05:15 +02:00
Yuri Chornoivan
6f982e88a0 Fix minor EBN issues in the Doxygen code 2018-12-03 23:40:12 +02:00
Shubham Jangra
2a1a0e4280 Use override 2018-12-03 18:26:56 +05:30
Vlad Zagorodniy
05c9b1adc2 Update about data
Summary:
Currently, --about doesn't have any effect. In addition to that, the about
data contains outdated information.

This change hopefully addresses all previously mentioned issues.

Test Plan: Ran kwin_wayland --author.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17319
2018-12-03 10:31:50 +02:00
l10n daemon script
bec589fedc 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-12-03 05:36:39 +01:00
Roman Gilg
a23368d638 Add Wayland touch drag and drop support
Summary:
Use the new functionality in KWayland to support drag and drop via touch
screens.

Either a drag and drop session with pointer or touch is possible, but not
both at the same time. Pointer/touch gets deactivated if a touch/pointer
drag and drop session is active.

Test Plan: Manually.

Reviewers: #kwin, davidedmundson

Subscribers: davidedmundson, alexde, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15466
2018-12-02 21:54:20 +01:00
Roman Gilg
2e29711323 Rework InputDeviceHandler focus tracking
Summary:
This patch aims at improving the Toplevel, internal window and decoration
focus tracking.

In detail the goals are:
* Clean tracking of beneath and focus Toplevel as well as decoration and
internal windows. Splitting this up in well defined sub routines.
* Minimal find Toplevel operations on window stack.
* Reduce code duplication in pointer and touch child classes.
* Reuse tracking in drag operations.
* Allow direct usage of Wayland input interfaces for decoration and internal
windows in the future.
* Update touch focus on external events like VD switches correctly.

Test Plan: Manually and existing autotests.

Reviewers: #kwin

Subscribers: kwin, zzag

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15595
2018-12-02 21:36:11 +01:00
Roman Gilg
eab71a8a19 Privatize variables in InputDeviceHandler
Summary:
Some members were declared protected. Better style is to have them private
with public or protected getters and setters.

This also removes the unnecessary m_input variable.

Test Plan: Builds and runs.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15519
2018-12-02 21:17:44 +01:00
Roman Gilg
b5a91cdfe0 Float position values in drag input filter
Summary:
We lost information when using QMouseEvent::globalPos, since
it is integer. Use instead InputRedirection::globalPointer,
which is updated before the filters are processed and is
float.

Test Plan: Manually.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: anthonyfieroni, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15502
2018-12-02 21:11:16 +01:00
Vlad Zagorodniy
295138145c Make sure that effect windows outlive effects
Summary:
Compositing is suspended/finished in a very hard way fashion, effect
windows are destroyed without notifying effects about it.

AnimationEffect tries gracefully release deleted windows, but because
in some cases(like when suspending compositing) a deleted window can
be already destroyed, a segmentation fault can happen.

This change adjusts the order in which effect windows and effects are
destroyed, so AnimationEffect (and other effects) cannot access dangling
pointers.

BUG: 400788
FIXED-IN: 5.15.0

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17311
2018-12-02 19:59:53 +02:00
Vlad Zagorodniy
3ad5604580 [scenes/opengl] Cleanup cached decoration shadow textures when suspending compositing
Summary:
When suspending compositing, SceneOpenGLShadow cannot cleanup cached
decoration shadow textures because the effects handler is already gone.

This sometimes can result in a crash when running kwin_x11 --replace
(we're hitting an assert statement).

To fix that, let's use the scene instead of the effects handler for
making the OpenGL context current.

Test Plan:
No longer hit the assert statement:

    ASSERT: "m_cache.isEmpty()" in file /home/vlad/Workspace/KDE/src/kde/workspace/kwin/plugins/scenes/opengl/scene_opengl.cpp, line 2025
    Application::crashHandler() called with signal 6; recent crashes: 1
    QCoreApplication::applicationFilePath: Please instantiate the QApplication object first
    KCrash: crashing... crashRecursionCounter = 2
    KCrash: Application Name = kwin_x11 path = /home/vlad/Workspace/KDE/usr/bin pid = 5407
    KCrash: Arguments: /home/vlad/Workspace/KDE/usr/bin/kwin_x11 --replace

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17306
2018-12-02 19:59:07 +02:00
l10n daemon script
64cf1afa9f 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-12-02 05:29:39 +01:00
Martin Flöser
37060a6dd9 Add command line option no-lockscreen to disable lock screen integration
Summary:
WaylandServer provides the initialization flag to disable lock screen
integration. This couldn't be used yet as there is no command line flag
for it. This change adds a new command line argument and hooks up the
functionality.

The no lock screen integration is useful for the embedded use case where
KWin is just used to render one application.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17279
2018-12-01 19:12:09 +01:00
Vlad Zagorodniy
8c70600f13 [effects] Clean up effect_order in unloadAllEffects
Summary:
EffectsHandlerImpl::unloadAllEffects can be very useful when writing
tests, e.g.:

    auto effectsImpl = qobect_cast<EffectsHandlerImpl *>(effects);
    QVERIFY(effectsImpl);

    effectsImpl->unloadAllEffects();
    QVERIFY(effectsImpl->loadEffect(QStringLiteral("kwin5_effect_foobar")));

but because unloadAllEffects doesn't clean up effect_order, the old
effects can be re-added back into loaded_effects when a new effect is
loaded. Such behavior can result in a segfault.

Test Plan: Existing tests pass.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17283
2018-12-01 19:06:28 +02:00
Martin Flöser
3ad9ac7229 Introduce the concept of an internal window system independent id
Summary:
For supporting Wayland windows in the kwin_rules_dialog we need a way to
pass a window id for Wayland windows to the dialog. This id needs to be
sent to the dbus interface to query window information just like the
interactive query. For Wayland windows we don't really have a window id
and it would require to also pass the windowing system to
kwin_rules_dialog and back through the dbus interface.

To not complicate things this change introduces a windowing system
independent id based on UUID. This could in future also be used
internally for areas where it's window id based and used in both
windowing systems.

Test Plan: Adjusted test cases to verify the uuid is generated and passed to Deleted

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16986
2018-12-01 12:17:05 +01:00
Martin Flöser
f8459a71cc Switch lockscreen test to OpenGL
Summary:
Main reason for using QPainter was the fact that build.kde.org did not
support OpenGL back when the test got introduced. As we have vgem
support nowadays we can switch back to OpenGL.

Test Plan:
100% tests passed, 0 tests failed out of 130,
but the test is flaky with and without this change

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16940
2018-12-01 12:14:40 +01:00
Martin Flöser
98ddb93dfe Unset all env variables related to KDE session in integration tests
Summary:
When running ctest in my session a few OpenGL/waylandonly tests crashed
on tear down. This does neither happen on build.kde.org nor when running
ctest in a tty. Comparing the env variables of tty and session pointed
to the session variables. Unsetting those makes the test not crash. This
makes sense as e.g. plasma-integration no longer gets loaded.

As our test suite is intended to test KWin and not plasma-integration or
gnome integration we should have a clean and reproducable environment,
so the variables are unset.

Test Plan: 100% tests passed, 0 tests failed out of 130

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16939
2018-12-01 12:14:10 +01:00
Martin Flöser
260646ed62 Delete kglobalshortcutsrc before executing a test
Summary:
When running the complete test suite the ScriptedEffectsTest::testShortcuts
registers the shortcut meta+shift+y. But GlobalShortcutsTest::testX11ClientShortcut
also tries to use this shortcut for a window shortcut which fails if it
is already registered. So when running the complete test suite it
depends on the order of execution whether the GlobalShortcutsTest passes
or not.

Test should be clean - also the globalshortcuts. As the config is read
from test directory anyway, we can delete the file prior to init of
kglobalaccel.

Test Plan: Run ctest, test did not fail anymore

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16932
2018-12-01 12:13:39 +01:00
Martin Flöser
fa4f123fba Add button to dynamically resize virtual keyboard
Summary:
One of the things I dislike most about our virtual keyboard integration
is it's size. It's at least on my system covering too much vertical
space. Unfortuantely the keyboard API does not offer a way to control
the vertical space - one can only control the width. Thus it's also not
possible to just provide the keyboard in the optimal size.

This change tries to address the problem by adding a resize button. When
pressed one can dynamically decrease and increase the width of the
keyboard and thus also the height.

The button is added to the top/right corner. Ideally it would be added
to the symbol button row, but either I couldn't find the appropriate API
hooks or it's not possible.

Test Plan: Started KWin with the change and tested with touch input

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16485
2018-12-01 12:13:01 +01:00
Martin Flöser
46eceef299 [opengl] Drop functionality to start kcmshell compositing
Summary:
The idea of opening the compositing kcm was to show a warning. But that
broke quite some time ago without noticing. We had two ways:
 * pass through --args command line argument
 * use dbus call to already open kcm

Neither of the two ways is working. The kwincompositing doesn't parse
the arguments and the dbus interface doesn't exist any more.

Following the advice to remove functionality nobody noticed that it is
broken, this is removed with this change. This probably broke with
introducing the new KCM which happened IIRC for Plasma 5.0.

BUG: 393845
FIXED-IN: 5.14.0

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13235
2018-12-01 11:42:33 +01:00
David Edmundson
69c7146a73 [autotests] Stabilise colorcorrect test
Summary:
It crashes occasionally as the connection thread is still processing events
when the app is tearing down. These changes bring it in line with the
other tests using WAYLANDTEST_MAIN.

Test Plan:
Relevant test now passes.
Ran repeatedl without a crash

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17254
2018-11-30 11:37:41 +00:00