Commit graph

13242 commits

Author SHA1 Message Date
Martin Gräßlin
6b8075ddbf Test case for Client activation on screen edge 2014-09-27 08:18:20 +02:00
Martin Gräßlin
883445d5e8 Add an auto-test for ScreenEdges
The new test does not cover ScreenEdges completely, so far the
following areas are handled:
* creating of the edges
* reserving of edges
* trigger callback
* cursor pushback
* blocking of edges for fullscreen active clients
2014-09-26 14:01:44 +02:00
Martin Gräßlin
1416ff0994 Fix VirtualDesktopGrid::size for one desktop
The default was set that the grid size for one desktop is (1, 2)
which doesn't make any sense at all - it should be (1, 1).

This most likely only affects the unit test as in production the
default layout is taken fron NETRootInfo.
2014-09-25 12:49:18 +02:00
Martin Gräßlin
2d19afd3fc Drop unused include from screenedge.cpp 2014-09-25 09:29:28 +02:00
Martin Gräßlin
a7cf808dea Improve the TestScreens autotest 2014-09-25 08:45:23 +02:00
Martin Gräßlin
1e2f491176 Improve auto-tests for xcbutils.h 2014-09-24 21:04:15 +02:00
l10n daemon script
fd8006c546 SVN_SILENT made messages (.desktop file) 2014-09-24 08:30:00 +00:00
Martin Gräßlin
7242f64d4c Change wl_event_queue to KWayland::Client::EventQueue
Requires e708af8c9dfaa2eb0d95f5e2b5059890885c5f74 in kwayland.
2014-09-23 13:15:49 +02:00
Martin Gräßlin
b8837b66f3 ShmPool returns QWeakPointer<Buffer> instead of Buffer*
Requires effad12d8b1169d9ffe851fc3f0143eeb8deb10d in kwayland.
2014-09-22 09:59:58 +02:00
l10n daemon script
08540b45eb SVN_SILENT made messages (.desktop file) 2014-09-21 08:48:08 +00:00
Martin Gräßlin
5eceda4ae6 ShmPool returns Buffer instead of wl_buffer
Requires c561316236279754c5570009ec6adb5da215efd8 in kwayland.
2014-09-20 15:13:17 +02:00
Martin Gräßlin
6833581bbb [scene_qpainter] Use image format RGB32 as back buffer
No need for ARGB as our background is fully black anyway.
2014-09-19 15:01:59 +02:00
Martin Gräßlin
237ee7fcc7 wayland_client and wayland_server moved to kwayland
kwayland is provided by kde:kwayland and is located at
kde/workspace/kwayland

It's an optional build dependency needed only for kwin_wayland.
2014-09-19 13:59:51 +02:00
l10n daemon script
e340d1ba05 SVN_SILENT made messages (.desktop file) 2014-09-19 09:03:02 +00:00
Martin Gräßlin
2573d5e711 Workaround for systems not yet having XCB 1.10
If the new used event types are not present, we define them.
This should fix the broken build on the CI system.
2014-09-19 10:04:00 +02:00
Martin Gräßlin
58adbe4d80 Add KF5 version requirement to 5.3.0
5.3.0 is the next upcoming release and we currently depend on new
features added to KWindowSystem.
2014-09-19 07:44:42 +02:00
Fredrik Höglund
ad0abdc812 Add support for GLX_INTEL_swap_event
Enable swap events and use them to defer rendering of the next frame
until the last glXSwapBuffers() call has completed.
2014-09-18 20:21:20 +02:00
Fredrik Höglund
29795f49e8 Add support for GLX in Xcb::Extensions 2014-09-18 20:21:20 +02:00
Fredrik Höglund
869ebdd4c0 Add an X11EventFilter class
This class provides an event filter, specific to an event type, that
can be registered with Workspace to filter events.
2014-09-18 20:21:20 +02:00
Fredrik Höglund
32e9de1e23 Refactor the swap completion interface
Move the buffer-swap-pending state from the compositing backends to
the Compositor class. The Compositor is the only class that needs to
access the state, and this way it to do it without calling through
a chain of virtual functions. This commit adds two new functions to
Compositor; aboutToSwapBuffers() and bufferSwapComplete(). The
backends call these functions to set and reset the buffer-swap-pending
state.

This commit also renames a number of functions and variables to make
their meaning clear.

The act of promoting the contents of the back buffer to become the
contents of the front buffer is referred to as posting the buffer,
presenting the buffer, or swapping the buffers; rendering the buffer
is what paintScreen() does.
2014-09-18 20:21:20 +02:00
Alex Richardson
b0b9ef4457 Fix build with clang
The wayland protocols need the .c files compiled in gnu90 mode.

All known compilers used for kwin support the -std= flag, so setting it
unconditionally should be fine

REVIEW: 120231
2014-09-17 14:28:30 +02:00
Martin Gräßlin
4eadc9daef [auto-tests] Add an initial test for Screens
This is a very interesting auto test as Screens uses both Workspace
and Client. Thus it operates in the "impossible to mock" area.

The solution is to provide mock includes in autotests and ensure that
when building the auto-test the mock header includes will be picked
first. There is now a mock class for Workspace and Client providing
just the API pieces used inside Screens.

As Screens is abstract and we cannot properly interact with
QDesktopWidget there is also a MockScreens class inheriting from Screens
and mocking the required functionality (by just operating on a list of
QRects).

The auto-test itself is only performing checks on the abstract class.
The mock class is indirectly tested by Screens calling into the virtual
methods. The test case is not yet complete, but looking quite good
already.
2014-09-17 10:29:03 +02:00
Martin Gräßlin
73098cbfdc Split out WaylandScreens into own header and source file
This reduces the needed ifdefs in screens and makes it easier to
unit test Screens.
2014-09-17 09:05:11 +02:00
Martin Gräßlin
60e847cdd6 Add WM2Activities to supported properties
We have the property, so let's announce that we support it.

REVIEW: 120227
2014-09-16 08:07:32 +02:00
Martin Gräßlin
9fae34f86f Remove Client::getWMHints in favor of functionality in NETWinInfo
We are only using the UrgencyHint, InputHint and GroupLeader from
WMHints. Those are provided by NETWinInfo, so we can use the
functionality provided by NETWinInfo instead of calling XGetWMHints.

REVIEW: 120162
2014-09-15 16:29:47 +02:00
Martin Gräßlin
73ec4569df Fix misaligned combo box in window rules kcm
The combox for "Titlebar color scheme" was of the wrong size and a
little misaligned.

Thanks to kdeuser56 for this patch.

REVIEW: 119998
2014-09-15 16:19:50 +02:00
Fredrik Höglund
078d5ac5b5 Add support for EGL_EXT_platform_wayland 2014-09-13 12:07:33 +02:00
Fredrik Höglund
c9e2f36802 Add support for EGL_EXT_platform_x11 2014-09-13 12:07:32 +02:00
Fredrik Höglund
3b4907d060 Add support for explicit command stream synchronization
Create and import X sync fences into GL and use them to synchronize
the kwin command stream with the X command stream.

This prevents damaged windows from being composited by kwin before
the rendering that triggered the damage events have finished on
the GPU.

Requires GL_EXT_x11_sync_object.

Tested-by: Marco Martin <notmart@gmail.com>
2014-09-12 14:50:12 +02:00
l10n daemon script
8a620e7259 SVN_SILENT made messages (.desktop file) 2014-09-11 08:46:22 +00:00
Martin Gräßlin
1b091a0517 [PaintRedirector] Fix typo
BUG: 338210
2014-09-08 14:41:07 +02:00
Martin Gräßlin
d96af81f5e Merge branch 'Plasma/5.0'
Conflicts:
	kcmkwin/kwindesktop/desktop.desktop
2014-09-08 10:07:57 +02:00
Martin Gräßlin
edd2899094 [aurorae] Use AlignHCenter instead of AlignCenter for horizontalAlignment
The Text.horizontalAlignment property expects AlignHCenter instead of
AlignCenter. By not using AlignHCenter the centering broke when a window
got maximized.
2014-09-08 10:05:44 +02:00
l10n daemon script
65548b0df3 SVN_SILENT made messages (.desktop file) 2014-09-07 09:22:40 +00:00
l10n daemon script
1205c9c170 SVN_SILENT made messages (.desktop file) 2014-09-07 08:46:08 +00:00
l10n daemon script
6a9b43e486 SVN_SILENT made messages (.desktop file) 2014-09-04 09:13:04 +00:00
l10n daemon script
e75adfa9f5 SVN_SILENT made messages (.desktop file) 2014-09-04 08:36:54 +00:00
Martin Gräßlin
d2e4b4300e [autotests/wayland_client] Make TestWaylandShell more robust 2014-09-03 21:31:10 +02:00
Martin Gräßlin
7b2d7d9c54 [autotests/wayland_client] Improve TestWaylandShell
Uses our own Wayland server instead of starting Weston and adds
tests for the interface removed signals.
2014-09-03 21:13:25 +02:00
Martin Gräßlin
7748b64ba0 [kwin_wayland] Add assert in Display::setRunning
Making the impossible condition an assert instead of a return.
2014-09-03 20:04:31 +02:00
Martin Gräßlin
a69228ed0d [kwin_wayland] Fix Display::outputs
Should return a const-ref not a const copy.
2014-09-03 20:03:13 +02:00
Martin Gräßlin
515903cc33 [kwin_wayland] Test that Seat gets destroyed when Display terminates 2014-09-03 20:02:42 +02:00
Martin Gräßlin
7e27f2fc0c [kwin_wayland] Test adding/removing Outputs in TestWaylandServerDisplay 2014-09-03 20:01:54 +02:00
Fredrik Höglund
c061cc5fd9 Match the fbconfig visual depth to the window
Not all RGBA 8888 fbconfigs in the NVIDIA driver have an associated
X visual with a 32 bit depth.

This fixes a regression from 88f8078073.

Tested-by: Eike Hein <hein@kde.org>
2014-09-03 19:52:56 +02:00
Martin Gräßlin
c00c67bf29 [scripting] Drop qmlRegisterType for QQuickWindow
Not needed as one can just do:
import QtQuick.Window;

This fixes a build problem with Qt 5.4.

BUG: 338277
2014-09-03 09:47:21 +02:00
l10n daemon script
9af9814859 SVN_SILENT made messages (.desktop file) 2014-09-02 11:19:59 +00:00
l10n daemon script
493e9b3238 SVN_SILENT made messages (.desktop file) 2014-09-02 10:43:26 +00:00
Martin Gräßlin
dbad3d12e6 [kwin_wayland] define WL_SEAT_NAME_SINCE_VERSION if not defined
Apparently not yet in wayland server library on build.kde.org.
2014-09-02 11:11:26 +02:00
Martin Gräßlin
5852a4c069 [kwin_wayland] Add SeatInterface to server module
So far the Seat interface is provided together with pointer and
keyboard. As always touch is not yet implemented. The pointer interface
is still lacking the set cursor callback. Keyboard on the other hand is
complete.

Both Keyboard and Pointer have the concept of a focused surface and only
to the bound interface belonging to the same client as the focused
surface events are sent.

The change comes with a set of new auto tests also verifying the client
side which wasn't possible before as we couldn't fake events.
2014-09-02 10:55:33 +02:00
Martin Gräßlin
106b540d91 [kwin_wayland] Add Shell and ShellSurface to server module
ShellSurfaceInterface is not yet completely implemented. Several parts
are still TODO, e.g. move/resize is missing, setting to maximized is
missing and also flags for fullscreen are missing.

The surface test is extended as far as possible.
2014-09-02 10:55:33 +02:00