Commit Graph

12472 Commits (c0c57d7076c8b0f9cc630caf251b3524c37a483c)

Author SHA1 Message Date
l10n daemon script baf37deacd SVN_SILENT made messages (.desktop file) 2014-09-01 08:42:05 +00:00
l10n daemon script 5114d9b5da SVN_SILENT made messages (.desktop file) 2014-08-31 08:41:36 +00:00
Bernd Steinhauser 9ec2272dc3 Fix target dependencies. 2014-08-29 12:49:04 +02:00
Thomas Lübking c8abd56a2f fix shortcut extrapolation
NativeText is translated (ie. matching
ctrl against eg. strg) and the shortcut
must be added to KGlobalAccel to feed
further extrapolations

BUG: 338579
REVIEW: 119949
2014-08-28 20:31:15 +02:00
Thomas Lübking 32dbb57618 block warps after warping for VD switch
until the event cycle finished - xcb_flush nor
even XSync around the cursor setting does not
help and the pushback operates on a false position,
purging the VD switch warp

BUG: 338593
REVIEW: 119960
2014-08-28 20:30:00 +02:00
l10n daemon script ed02a9fb96 SVN_SILENT made messages (.desktop file) 2014-08-28 08:49:28 +00:00
Martin Gräßlin 7d059c8b08 [autotests/wayland_client] Don't build TestWaylandFullscreenShell for Wayland < 1.5
The fullscreen shell is only provided with at least Weston 1.5.
It should be checked on runtime, but that's difficult as Weston doesn't
fail if it cannot find the shell.so. So we disable it based on the
assumption that if Wayland library is not 1.5 the Weston is also not 1.5.
2014-08-27 12:59:32 +02:00
Martin Gräßlin 42e2bbf387 [tests] Mark wayland-client-fullscreen-shell.c as generated
This should fix the build.
2014-08-27 09:19:36 +02:00
Martin Gräßlin e125cbc4e6 [tests] Add a waylandclienttest application
A small test application to use the Wayland Client classes. It opens
a fullscreen Shell surface and reacts to input events:
* q quits
* left click toggles the background color animation
* right click quits

REVIEW: 119883
2014-08-27 08:57:21 +02:00
Martin Gräßlin 6ddded0852 [kwin_wayland] Cleanup wayland_backend.[h|cpp]
Remove no longer needed includes, turn one time slot methods into
lambdas, etc.
2014-08-27 08:57:06 +02:00
Martin Gräßlin 46f2b252d8 [kwin_wayland] Create dedicated classes for Seat, Keyboard and Pointer
Split out from wayland_backend. So far no unit test as there is no proper
way to simulate input events.
2014-08-27 08:57:06 +02:00
Martin Gräßlin 0b0a48ca08 [kwin_wayland] Create a dedicated class for Compositor
Wraps the compositor interface.
2014-08-27 08:57:06 +02:00
Martin Gräßlin a7ea4e1a56 [kwin_wayland] Make ShmPool more like the other wrapper classes
Normal QObject ctor and the setup method to bind to the interface.
2014-08-27 08:57:06 +02:00
Martin Gräßlin 08ab2c424e [kwin_wayland] Split out Buffer and ShmPool into dedicated files
Moved from wayland_backend.[h|cpp] to buffer.[h|cpp] and
shm_pool.[h|cpp]. Buffer is slightly adjusted to have the ShmPool
passed in as a ctor argument and the ctor is private and friended with
ShmPool, so that it can only be constructed from ShmPool.
2014-08-27 08:57:06 +02:00
Martin Gräßlin ce8c4240f7 [kwin_wayland] Create a dedicated Surface class
A Surface class is split out which holds a wl_surface and supports
attaching a buffer, setting the damage and emitting a signal when the
frame callback got called.

It doesn't come with a unit test yet as it first needs the ShmPool
and Buffer properly split out to easily set it up.
2014-08-27 08:57:06 +02:00
Martin Gräßlin bd8ed3cd70 [kwin_wayland] Flush display connection before going to block
Integrate with QAbstractEventDispatcher::aboutToBlock and because of that
we can drop all direct calls to flush from the Scenes.
2014-08-27 08:57:06 +02:00
Martin Gräßlin 8c4bc3ba45 [kwin_wayland] Split out wl_shell and wl_shell_surface into dedicated classes
New classes Shell and ShellSurface are created. Both are in shell.[h|cpp]
to indicate their close relationship with the Shell having to create the
ShellSurface.

WaylandBackend is adjusted to hold a Shell* and ShellSurface* instead of
the lower level structs. This also required adjustements to the creation
of the Backend as it now doesn't set a default size any more. Thus the
backendReady signal may not be emitted before the initial configure
event arrived. This also makes it easier to support either the fullscreen
shell or wl_shell at the same time.

Of course a unit test is added for the two new classes. This needs to
be extended once we have more control over the mock Wayland server.
2014-08-27 08:57:06 +02:00
Martin Gräßlin d2f1e936f1 [kwin_wayland] Move Wayland::Output into dedicated source files
At the same time adding an autotest for the Output, moving the listener
into the Output class and providing enums for Subpixel and Transform.

KWin now requires wl_ouput interface version 2 as that allows us to emit
the changed signal in a better way.

The unit test is not yet capable of testing everything, we need a mock
Wayland server which is more flexible.
2014-08-27 08:57:05 +02:00
Martin Gräßlin d19b6c0241 [kwin-wayland] Add support for FullscreenShell
The FullscreenShell is a Wayland protocol provided by Weston to have
exactly one surface per output. This is exactly what KWin needs. So
in case the Wayland server we connect to provides the FullscreenShell
we prefer it over the normal Shell and mapping our surface as fullscreen.

The protocol is not yet part of wayland-client library, so the header
and source file needs to be generated. This is done during the build
process using the external tool wayland-scanner. The protocol
description is copied from the Westion 1.5 sources.

REVIEW: 119839
2014-08-27 08:55:40 +02:00
Fredrik Höglund 0aff9830df Remove the decoration opacity property
It has been broken since cross-fading was introduced, and no one has
filed any bug reports about it.
2014-08-25 17:25:04 +02:00
Fredrik Höglund 70d35d602f Remove SceneOpenGL2Window::prepare/restoreStates()
Dead code.
2014-08-25 17:09:48 +02:00
Fredrik Höglund 3d3a52c32d Remove SceneOpenGL::Window::renderQuads()
Leftover from the OpenGL 1.x backend.
2014-08-25 17:09:48 +02:00
Fredrik Höglund c9aacbc460 Remove SceneOpenGL::Window::paintDecoration()
Leftover from the OpenGL 1.x backend.
2014-08-25 17:09:48 +02:00
Fredrik Höglund 10120c6d42 Remove SceneOpenGL::Window::paintShadow()
Leftover from the OpenGL 1.x backend.
2014-08-25 17:09:48 +02:00
Martin Gräßlin ac25052c22 [kwin_wayland] Safety check for WaylandSeat::installCursorImage
wl_cursor_theme_get_cursor might return a null pointer - return
instead of crash.
2014-08-25 15:22:21 +02:00
Hrvoje Senjan d880f7418c Don't install 'devel' symlink of KWin shared library
As it is not public, no headers installed, etc, no need to install the symlink.
REVIEW: 119835
2014-08-25 12:49:03 +02:00
l10n daemon script 6314d643c8 SVN_SILENT made messages (.desktop file) 2014-08-24 09:21:16 +00:00
l10n daemon script f2fc577770 SVN_SILENT made messages (.desktop file) 2014-08-24 08:45:33 +00:00
Martin Gräßlin 5cc66f12ac [autotests/wayland_client] Add --use-pixman and remove --no-config
Needed for running the weston on the ci-system.
2014-08-21 13:46:13 +02:00
Martin Gräßlin 3d3cd72fa2 [aurorae] Drop project from CMakeLists.txt
Left-over from when it used to be a separate project.
2014-08-21 13:24:25 +02:00
Montel Laurent 983b5b7833 Use resolve_kuit.py to clean i18n* 2014-08-21 13:17:37 +02:00
Jonathan Riddell dc554ed256 use standard way to version applications in Plasma 2014-08-20 15:43:27 +02:00
Martin Gräßlin 5f439cea99 [scene_qpainter] Add safety check in screenGeometryChanged
The buffer might be null, so better check for it.
2014-08-18 20:07:15 +02:00
Martin Gräßlin bd5fe4f785 [kwin_wayland] Add a Wayland::Registry class
The Wayland::Registry class wraps wl_registry handling. It keeps track
of the interfaces in the registry and emits signals whenever a known
interface gets announced or removed. So far it only tracks the interfaces
which are used and needed by KWin.
2014-08-18 14:05:35 +02:00
Martin Gräßlin 697d9f884f Fix soversion of libkwin in CMakeLists.txt 2014-08-18 12:32:02 +02:00
l10n daemon script 90bba3ba77 SVN_SILENT made messages (.desktop file) 2014-08-18 09:18:47 +00:00
l10n daemon script 2696112692 SVN_SILENT made messages (.desktop file) 2014-08-18 08:43:59 +00:00
Martin Gräßlin 3185530ed6 [kwin-wayland] Create dedicated thread for wayland connection
The Wayland event queue is moved into a dedicated thread and a
new class is created for just creating the connection and listening
for events. The WaylandBackend creates the thread and uses an event
queue for the main thread.

REVIEW: 119761
2014-08-18 08:51:24 +02:00
Martin Gräßlin 12c8facc34 [kwin-wayland] Add signal handler also to main_wayland
REVIEW: 119760
2014-08-18 08:50:44 +02:00
Martin Gräßlin 65c17d32cc [kwin_wayland] Add config option to start an X Server
KWin_Wayland still needs an X-Server. To simplify the development
setup the required X-Server can be started through a command line
argument together with KWin. Unfortunately the command line arguments
processing needs to be done by hand as QCommandLineParser only allows
processing after QApplication is created which requires the started
X Server.

The nested X-Server is started by forking the application and using
execlp to load the binary. In addition a pipe is created to allow the
X-Server to write the display number to once it's ready to connect and
by that KWin is ready to create the QApplication.
2014-08-18 08:50:44 +02:00
Martin Gräßlin f373aa1ce5 Improve sanity check in WaylandBackend::create
If the WaylandBackend got created without a wl_display we better
stop processing.
2014-08-18 08:50:44 +02:00
Martin Gräßlin 670973efdb Move creating WaylandBackend into ApplicationWayland
Early creation to ensure that we can abort if there is no Wayland
display to connect to.
2014-08-18 08:50:44 +02:00
Martin Gräßlin f9a7b94ee7 Create dedicated kwin_x11 and kwin_wayland binaries
All of kwin except the main function goes into a new (private) library
called kwin. Two new kdeinit_executables are created:
* kwin_x11
* kwin_wayland

Both only use a dedicated main_x11.cpp and main_wayland.cpp with the
main function and a KWin::Application subclass and linking the new
kwin library.

The main idea behind this is to be able to perform more sane sanity
checks. E.g. on Wayland we don't need to first test whether we can
create an X11 connection. Instead we should abort if we cannot connect
to the Wayland display. Also the multi-head checks are not needed on
Wayland, etc. etc. As most of that code is in the main function to
simplify it's better to split.

This will also make it easier to diverge more easily in future. The
Wayland variant can introduce more suited command line arguments for
example. This already started by having the --replace option only
available in X11 variant. The Wayland backend is still a window manager,
but doesn't claim the manager selection.
2014-08-18 08:50:44 +02:00
l10n daemon script 5ca9226cf6 SVN_SILENT made messages (.desktop file) 2014-08-17 09:18:35 +00:00
l10n daemon script f35a8ec029 SVN_SILENT made messages (.desktop file) 2014-08-17 08:44:16 +00:00
l10n daemon script 36b404057d SVN_SILENT made messages (.desktop file) 2014-08-15 09:08:57 +00:00
l10n daemon script 3acff8e9bc SVN_SILENT made messages (.desktop file) 2014-08-14 09:17:58 +00:00
l10n daemon script 1478a08c31 SVN_SILENT made messages (.desktop file) 2014-08-14 08:44:45 +00:00
Sebastian Kügler 530160a2f3 Fix grammar in docs 2014-08-12 00:16:26 +02:00
Thomas Lübking d44aedbcac always use establishTabBoxGrab instead un/grabX*
BUG: 337853
2014-08-11 21:27:40 +02:00