Commit Graph

13501 Commits (3bcd24b00917c25cfb004d85c7ca6fced8f71cac)

Author SHA1 Message Date
Thomas Lübking c240f7a012 do the hide-is-move dance w/ desktopgrid buttons
the (old) button effect windows used to be unreferenced
with the re-invocation of the effect. because we stopped
deleting/recreating the window, this approach failed and
the effect window was never deleted.

Unreferencing the window at proper occasion (see new hide
location) coked up - guess what - the exact same "texture is
junk" issue as for the QtQuick close button in present windows...

So we resort to the exact same stupid "hide by moving" solution
as we have there.

BUG: 348577
FIXED-IN: 5.4
REVIEW: 124136
2015-08-15 01:35:24 +02:00
Thomas Lübking 269e275cb0 smart placement of unregularily max'd clients
1. if a client has oversize, ensure to keep the titlebar in
sight

2. if a maximized client *almost* covers the entire maximization
area, users can easily be trapped to click into the missing
pixels, thus the client below.

Therfore the clients is then stuffed into one corner, with
preference to the titlebar edge and the screen area (ie.
*away* from panels and towards actual screen borders because
of fitt's law)

BUG: 349935
REVIEW: 124286
FIXED-IN: 5.4
2015-08-15 01:34:41 +02:00
Thomas Lübking eb71b47db4 only discard pixmaps when the XCB Window resized
Causes invalid textures on the nvidia blob
when referencing textures for crossfading
eg. during maximization

BUG: 324823
REVIEW: 124591
FIXED-IN: 5.4
2015-08-15 01:34:41 +02:00
Thomas Lübking 62b6401175 store logic (what we think) geometry of XCB Window
This allows us to check and compare geometry of
system windows, no matter what the interim logic
client geometry (eg. shaded etc.) is

REVIEW: 124591
2015-08-15 01:34:41 +02:00
Martin Gräßlin 5d946e3762 Make X11_XCB a build dependency of X11 windowed backend
Let's rather not build the plugin if we don't have the dependency
then building it without OpenGL support. Simplifies the code a bit
and makes the backend overall more useful and goes along with e.g.
the Wayland one which has EGL also as a hard dependency for the
plugin.

REVIEW: 124697
2015-08-12 11:39:20 +02:00
Martin Gräßlin 06aacf4f65 Drop cmakedefine HAVE_WAYLAND_EGL
Now a required build dependency.
2015-08-12 11:39:20 +02:00
Martin Gräßlin 3139dcd3b9 Drop cmakedefine HAVE_WAYLAND
Now a required build dependency.
2015-08-12 11:39:20 +02:00
Martin Gräßlin a6c6408f54 Drop cmakedefine HAVE_WAYLAND_CURSOR
Now a required build-dep.
2015-08-12 11:39:20 +02:00
Martin Gräßlin da1e063a37 Drop cmakedefine HAVE_XKB
No longer needed, we always depend on xkbcommon now.
2015-08-12 11:39:19 +02:00
Martin Gräßlin 0b8f2d4a34 Make Wayland a hard build time dependency
As discussed on release-team ml [1] the following dependencies are
mandatory:
* KF5Wayland
* Wayland::Cursor
* Wayland::Egl
* xkbcommon

[1] https://mail.kde.org/pipermail/release-team/2015-July/008725.html
2015-08-12 11:39:19 +02:00
Martin Gräßlin a002442224 [decorations] Bring back option NoPlugin
The option NoPlugin allows to disable window decoration plugins. It
used to exist with the old decoration library but got unfortunately
lost during the switch.

This change brings back the option and also allows runtime changes
of the option.

REVIEW: 124708
2015-08-12 10:52:46 +02:00
Martin Gräßlin 1274740f51 Merge branch 'Plasma/5.4' 2015-08-12 09:42:05 +02:00
Martin Gräßlin b8e433d0a9 [effects] Properly set the componentDisplayName on the KActionCollection
Without the componentDisplayName the shortcut dialog takes the name of
the application e.g. Systemsettings or "KDE Control Module", but we want
it to be KWin.

REVIEW: 124706
2015-08-12 09:40:55 +02:00
Martin Gräßlin 2635243650 Drop build option KWIN_PLASMA_ACTIVE
The build option wasn't used for 5.x at all and in this way doesn't make
any sense nowadays. We want to have a converged desktop which also means
that the window manager should be able to switch to a different form
factor with a full feature set (plug in external screen to smartphone and
it should be full desktop). A trimmed down KWin with compiled out
functionality cannot do that. Also the need for trimmed down KWin becomes
less and less important given the improved hardware we target nowadays.

This change got triggered by the announcement to close down the Plasma
Active mailinglist [1], which shows that having a build option called
Plasma Active is no longer needed.

[1] http://permalink.gmane.org/gmane.comp.kde.devel.active/4343

REVIEW: 124694
2015-08-11 11:19:39 +02:00
Martin Gräßlin c24e315a9b Drop build option KWIN_BUILD_EGL
It doesn't make much sense any more as we do no longer link EGL since the
switch to epoxy. And epoxy pulls it in at runtime if needed.
Even more on Wayland it's just plain stupid to have EGL disabled. So
removing the option just simplifies our code base without any
disadvantages.

REVIEW: 124695
2015-08-11 11:15:25 +02:00
Martin Gräßlin a596ff556e Merge branch 'Plasma/5.4' 2015-08-11 10:32:36 +02:00
Martin Gräßlin 8c884d92b3 Delete the rules process, not the Rulebook
Fixes crash when editing window rules.

BUG: 351177
REVIEW: 124693
2015-08-11 08:38:30 +02:00
Jonathan Riddell 5e8729c05d GIT_SILENT
Update version number for 5.4.90
2015-08-06 16:04:04 +02:00
Jonathan Riddell 252a3ca682 GIT_SILENT
Update version number for 5.3.95
2015-08-06 13:21:39 +02:00
Martin Gräßlin 125cc5082f Change default logging category to QtCriticalMsg
Less noisy KWin by default.
2015-07-31 13:29:58 +02:00
Martin Gräßlin 53004b95ff Port left over qDebug to qCDebug 2015-07-31 13:25:51 +02:00
Martin Gräßlin bffbbce172 [scripting] Add dedicated logging category 2015-07-31 13:25:51 +02:00
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