Commit Graph

13429 Commits (09880d126799d4a7b9d88d48310f7461991412a5)

Author SHA1 Message Date
Martin Gräßlin 09880d1267 [decorations] Introduce logging category for decorations 2015-07-31 13:13:46 +02:00
Martin Gräßlin 910c49959a [tabbox] Add dedicated logging category for TabBox 2015-07-31 13:13:41 +02:00
Martin Gräßlin fe28ca1d8a [libinput] Add dedicated logging category for libinput 2015-07-31 12:43:35 +02:00
Martin Gräßlin 57c521c214 [libkwineffects] Introduce logging categories for libkwineffects 2015-07-31 12:16:15 +02:00
Martin Gräßlin e476cbc0d2 [effects/cube] Drop warnings if not with shader support
We require shaders nowadays for the Cube effect.
2015-07-31 10:56:24 +02:00
Burkhard Lück 720d10cee8 Update kwintabbox kcm docbook to plasma 5
Note:
The diff is completely misleading, because the latest docbook in kde 4 has <date>2014-03-10</date> + <releaseinfo>&kde; 4.11</releaseinfo>
but kwin master in kf5 has <date>2010-10-28</date> + <date>2015-07-24</date> <releaseinfo>&kde; 4.5</releaseinfo>
The diff against the latest kde4 docbook version 4.11 has only 4 or 5 lines
REVIEW:124475
2015-07-28 09:49:29 +02:00
Burkhard Lück 25ca9df647 Remove obsolete kwincompositing kcm docbook
Remove the outdated docbook
This KCM is now in Display and Monitor -> Compositor
Compositor is not for Joe User, only for workarounds with broken drivers as confirmed by Martin
X-DocPath now points to userbase
REVIEW:124436
2015-07-25 09:06:43 +02:00
Martin Gräßlin a0adf3507a Move Q_PROPERTY wantsInput from Client to AbstractClient
This fixes the EffectWindow::acceptsFocus property which failed to
properly delegate to wantsInput for ShellClients.
2015-07-22 08:42:48 +02:00
Martin Gräßlin a5185f924d Fix naming 2015-07-22 08:38:00 +02:00
Yuri Chornoivan 999b01ec27 Fix typo 2015-07-21 19:05:44 +03:00
Yuri Chornoivan bff41058c5 Fix typos 2015-07-21 18:53:58 +03:00
Burkhard Lück 4730812df8 Review Request 124352: Update kwinsceenedges docbook to Plasma 5
REVIEW:124352
2015-07-21 12:02:11 +02:00
Burkhard Lück 7aebca7461 Update kwindecoration kcm docbook to Plama 5
REVIEW:124351
2015-07-21 11:56:23 +02:00
Burkhard Lück 9aa436f4dd Update windowbehaviour kcm docbook to Plasma 5
REVIEW:124348
2015-07-21 11:41:38 +02:00
Aleix Pol 6f345f4915 Clean debug output
Removes endl in the end of qDebug.
Removes the \n in the end of opengl output.

REVIEW: 124320
2015-07-20 13:36:27 +02:00
Martin Gräßlin e56520dc81 [wayland] Improve pointer movements at screen edges
So far if the new position fell outside of the screen, we ignored
the movement completely. This change only discards the event if both
x and y coordinates are outside the screen. If one component is still
on the screen it will be used. So a movement to top-left on left border
will result in a pointer movement towards top.
2015-07-20 12:35:46 +02:00
Martin Gräßlin e98d5d6a15 [wayland] Don't break if we try to vt-switch to vt we're on
If we were on e.g. vt 1 and pressed Ctrl+Alt+F1 KWin broke as it
disabled rendering for vt switch and vt switched to vt 1, which
obviously failed.

So let's check whether it's going to switch to the vt we are already
on and ignore surch requests.
2015-07-20 11:49:41 +02:00
Martin Gräßlin 01d805f193 [wayland] Pass appId to PlasmaWindow interface
For the appId we use:
* wl_shell windowClass for Wayland clients
* resourceName from window class for X11 clients

This is implemented by sharing the window class implementation in
Toplevel.

CCMAIL: hein@kde.org
2015-07-20 09:37:36 +02:00
Heiko Becker 105cda7769 Fix build without wayland
Without this I get: "shadow.cpp:133:1: error: no return statement in
function returning non-void [-Werror=return-type]"

REVIEW: 124390
2015-07-20 08:53:55 +02:00
Martin Gräßlin bc45c61eeb [wayland] Not visible windows should not trigger a repaint
When going through the pending repaints we need to ensure that
an unmapped Wayland client doesn't keep us in a repaint loop.
2015-07-17 20:39:57 +02:00
Martin Gräßlin 339d9de351 [backends/drm] Drm backend support syncsToVBlank 2015-07-17 20:39:37 +02:00
Martin Gräßlin 8797f826f9 [wayland] Determine whether libinput is needed from plugin metadata
If the backend specifies
{
"input": false
}

in it's plugin metadata, it means that it does not handle input by
itself. In that case we can enforce libinput.

With this change one does no longer need to specify --libinput when
starting kwin_wayland on the drm or fbdev backend. So

kwin_wayland --xwayland

will bring up a fully functional kwin_wayland on drm platform.
2015-07-16 10:54:29 +02:00
Martin Gräßlin a3db04f66e [wayland] Improve mapping of windowClass to desktop file
QtWayland might also pass a name like "app.desktop". In that case
we should not append .desktop to it.
2015-07-15 17:18:39 +02:00
Martin Gräßlin f7d317601e Install a categories file for kdebugsettings
Instead of setting our own filter rules we install a categories file
to allow to configure them. This seems to still have them enabled by
default, but should at least give distributions the possibility to
disable logging by default.
2015-07-15 12:02:31 +02:00
Martin Gräßlin df1146bfa6 [wayland] Shadow gains support for a Wayland protocol
For Wayland clients we now are able to get shadows.

Internally this reuses large parts of the X11 implementation. This
could be improved to make the Scene's better aware of the Wayland
shadow, so that less memory is needed.
2015-07-15 11:25:16 +02:00
Martin Gräßlin 3beff66aca [wayland] Announce modifier changes to clients 2015-07-13 14:25:09 +02:00
Martin Gräßlin 3fe270b804 [wayland] Enforce basic render loop
Looks like Qt 5.5 changed the default back to threaded and that can
result in dead locks of the compositor. So better enforce to basic
for the time being.

Another reason to have an own QPA to get rid of these "regressions".
2015-07-10 08:57:56 +02:00
Martin Gräßlin f304a49a58 [wayland] Only activate ShellClient in takeFocus if it wantsInput
This ensures that e.g. virtual keyboards don't get activated.
2015-07-09 20:43:41 +02:00
Martin Gräßlin 63bdc54b32 [tabbox] Fix loading of default layout
BUG: 350029
2015-07-09 19:34:18 +02:00
Martin Gräßlin a687a58e82 [wayland] Perform mouse command on AbstractClients on touch down
If the touch window changes we simulate a left press and perform
the mouse command for a left button.

Note: this is not yet tested on real system.
2015-07-09 16:34:19 +02:00
Martin Gräßlin 0c0ad87caf [wayland] Activate AbstractClient from InputRedirection on mouse button press
This only handles button presses without modifiers so far.
2015-07-09 16:34:19 +02:00
Martin Gräßlin c3b7ed907b Move logic to handle mouse buttons on windows to AbstractClient
Part of the logic is split out in a generic way so that the code
can be shared with activating of Wayland clients.
2015-07-09 16:34:19 +02:00
Martin Gräßlin 8d407157c4 Provide a base implementation for performMouseCommand in AbstractClient
Most commands can be operated directly in AbstractClient already which
means less code duplication to make the commands work for wayland
clients.
2015-07-09 16:34:19 +02:00
Martin Gräßlin 9a8f94f8fc Workspace::gotFocusIn and ::shouldGetFocusIn changed to operate on AbstractClient 2015-07-09 16:34:19 +02:00
l10n daemon script 726b1addd2 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"
2015-07-09 11:30:25 +00:00
Martin Gräßlin 810ed5d396 [wayland] Add support for FakeInput interface 2015-07-09 11:34:40 +02:00
Martin Gräßlin 282321bfb5 [wayland] Announce support for idle interface 2015-07-09 10:10:58 +02:00
Martin Gräßlin 72635101f0 [wayland] Improve creation of KWayland::Server::PlasmaWindowInterface
The creation of PlasmaWindowInterface is moved from WaylandServer into
AbstractClient. This allows the sub classes to better control when to
create/destroy the Client.

For creation it's bound to becoming visible - that is Windows which are
only created but never shown are not announced at all.

For Client it's destroyed with the normal tear-down of a Client, for
ShellClient it's destroyed on unmapped (which also means a new one
will be created again in case of another mapping of the surface).

As a side effect, this works around the problem that ShellClients do not
yet get destroyed for QtWayland's menus (needs further investigation).
2015-07-09 09:10:33 +02:00
Martin Gräßlin f6458fa1e8 Port away from KToolInvocation
The problem with KToolInvocation is that it creates a dead lock on
Wayland in case kdeinit is not already running. It starts kdeinit
and does a QProcess::waitForFinished and our kdeinit needs to interact
with the wayland server. So dead lock.

As KRun also calls into the dangerous code path it's no option which
leaves us with QProcess to start the processes.

A nice side-effect is that we no don't need to link KF5::Service any
more from kwin_core. Now once Plasma and Notification don't use it
any more, it will be gone completely.
2015-07-07 17:35:57 +02:00
Martin Gräßlin da4305c2fa [wayland] Focus to null X11 window when activating a Wayland client
Improves interaction with Xwayland clients.
2015-07-07 16:15:58 +02:00
Martin Gräßlin 377988eae9 EffectsHandlerImpl::activateWindow operates on AbstractClient
And now PresentWindows finally activates and raises windows.
2015-07-07 16:12:27 +02:00
l10n daemon script 65ba0111fe 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"
2015-07-07 13:43:56 +00:00
Martin Gräßlin 316914a38b Change supported platforms of kglobalaccel plugin to "org.kde.kwin"
Overwrite the platform name through the environment variable and ensure
that the plugin is not picked in non-kwin Wayland sessions as that puts
kglobalaccel5 into a crash restart loop.

BUG: 349911
2015-07-07 13:36:27 +02:00
Martin Gräßlin a1a89d3d1e Disable Activities support on Wayland
This is a temporary workaround for bug 349992 which causes freezes
during startup as kwin and kamd dead lock each other on DBus.

To workaround we don't call Activities::create and check in every
usage of Activities::self() whether the pointer is valid.

As a result kwin_wayland now starts pretty fast.

CCBUG: 349992
2015-07-07 11:48:42 +02:00
Martin Gräßlin c31bb6d46f Drop KF5::Service dependency where it's no longer needed 2015-07-07 09:53:48 +02:00
Martin Gräßlin 06469f66a8 [aurorae] Port loading of QML decos to KPackage
Another sycoca usage gone.
2015-07-07 09:53:48 +02:00
Martin Gräßlin 93ef184356 PluginEffectLoader doesn't use KPluginTrader any more
Requires that plugins change to new KPlugin json metadata.
2015-07-07 09:36:15 +02:00
Martin Gräßlin b01b03aa84 [scripting] Find scripts through KPackage
Another sycoca usage gone.
2015-07-07 08:48:24 +02:00
Martin Gräßlin 5b111cc467 [tabbox] Locate layouts through KPackage instead of KService
Another usage of ksycoca gone.
2015-07-07 08:28:38 +02:00
Martin Gräßlin 2cd6efa409 Switch decoration loading to KPluginLoader::findPluginsById
Removes a dependency to sycoca cache, but requires the plugin
metadata in the json file to use the new format.
2015-07-07 08:06:34 +02:00