Commit Graph

12506 Commits (0cc86656c9950e516cfdd3824d109b08e7ef726a)

Author SHA1 Message Date
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
Kai Uwe Broulik 16c432562d Merge branch 'Plasma/5.0' 2014-08-11 12:27:40 +02:00
Kai Uwe Broulik f0deec9ccb Don't hardcode Present Windows close button size
REVIEW: 119646
2014-08-11 12:27:21 +02:00
Martin Gräßlin b22317458c Override ::reparent in X11Renderer
Required to stop and disconnect the timer. Otherwise it's possible
that the render is invoked after the Client got destroyed. This
happened for example with e.g. opening Kickoff.
2014-08-11 11:41:08 +02:00
l10n daemon script b714937842 SVN_SILENT made messages (.desktop file) 2014-08-11 09:00:56 +00:00
l10n daemon script f2b66e478f SVN_SILENT made messages (.desktop file) 2014-08-11 08:31:30 +00:00
l10n daemon script cbc401414f SVN_SILENT made messages (after extraction) 2014-08-08 09:24:13 +00:00
l10n daemon script 3340a5fa1a SVN_SILENT made messages (after extraction) 2014-08-08 08:31:20 +00:00
l10n daemon script 2fccd37905 SVN_SILENT made messages (.desktop file) 2014-08-07 09:06:21 +00:00
Jonathan Riddell 8e30ae413e Increase version to 5.0.1 for bugfix release 2014-08-07 10:47:52 +02:00
l10n daemon script f2b0481707 SVN_SILENT made messages (after extraction) 2014-08-07 08:45:26 +00:00
l10n daemon script 2f5daf5f4b SVN_SILENT made messages (after extraction) 2014-08-07 07:56:52 +00:00
l10n daemon script b48595e86a SVN_SILENT made messages (after extraction) 2014-08-06 07:57:49 +00:00
Martin Gräßlin 689a3a1c5e Emit signals from Client when allowed actions change 2014-07-25 14:02:27 +02:00
Martin Gräßlin 7154cfee42 Drop size from Client::resizeDecoration
No longer used.
2014-07-25 14:02:27 +02:00
Martin Gräßlin 2b20aa8bd0 Drop CoordinateMode from Client::layoutDecorationRects
It's unused without the padding.
2014-07-25 14:02:27 +02:00
Martin Gräßlin a903fb2c64 Implement borderingScreenEdges for the DecoratedClientImpl
Uses the QuickTileMode of the Client to indicate which borders to
remove. This could be extended to be in general when a window borders
the screen edge and not just for quick tile mode.
2014-07-25 14:02:27 +02:00