Commit graph

12365 commits

Author SHA1 Message Date
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
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
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
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
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
l10n daemon script
2c78ff8bfd SVN_SILENT made messages (.desktop file) 2014-07-25 10:15:29 +00:00
Lukáš Tinkl
b3cf1f14cc Merge branch 'Plasma/5.0' 2014-07-23 03:36:34 +02:00
Lukáš Tinkl
0e4dd60507 i18n fixes 2014-07-23 03:35:36 +02:00
Martin Gräßlin
1e9b02411e Merge branch 'Plasma/5.0' 2014-07-22 13:22:48 +02:00
Martin Gräßlin
7f3b349ab3 Recommend OpenGL2 compositor for virtualbox and vmware
This ensures that those compositors are not forced to XRender.

BUG: 337560
FIXED-IN: 5.0.1
2014-07-22 13:21:23 +02:00
Fredrik Höglund
aa7f9f26f6 Fix the GLES build 2014-07-22 13:07:48 +02:00
Fredrik Höglund
b1586daab4 Remove the GL_QUADS_KWIN definition
GL_QUADS is always defined now that we're using libepoxy.
2014-07-22 12:56:32 +02:00
Fredrik Höglund
aae08b16e9 Add a WindowQuadShadow
And use this type for all the shadow quads in the OpenGL scene.
2014-07-22 12:28:20 +02:00
Martin Gräßlin
7744608a1d Drop SceneOpenGL::Window::textureForType
Dead code.
2014-07-21 15:04:44 +02:00
Fredrik Höglund
6ad4c775d7 Use a single texture atlas for the decoration
The left and right border images are rotated 90° before they are
uploaded into the atlas texture. The images are separated by a row
of transparent texels to minimize artifacts from oversampling.

With this change kwin renders the whole decoration with a single
call to glDrawArrays().
2014-07-17 09:39:17 +02:00
Fredrik Höglund
b7592ec6f0 Add a uvAxisSwapped property in WindowQuad
When this property is true, it indicates that the +U axis corresponds
to the +Y axis, and the +V axis corresponds to the +X axis.

This property is taken into account in WindowQuad::makeSubQuad().
2014-07-17 09:17:31 +02:00
l10n daemon script
5179d4d3c9 SVN_SILENT made messages (.desktop file) 2014-07-16 09:40:44 +00:00
Fredrik Höglund
d9c4b77f0f Make the GL extension list a QList<QByteArray>
It doesn't make sense to convert the extension names to QStrings.

This also replaces the QString parameter in hasGLExtension() with
a QByteArray and adjusts all callers.
2014-07-14 12:04:37 +02:00
Fredrik Höglund
3b8b1455a6 Use libepoxy to resolve GL functions
Remove the manually written GL dispatch code, and use libepoxy
to resolve functions.

The only exceptions are GLX_MESA_swap_control, which is not in
the XML API registry, and GL_ARB_robustness/GL_EXT_robustness.
For the latter we want to resolve the functions to the same names
on both GLES and desktop GL, and plug in our own implementations
when the extension is not supported.
2014-07-14 12:04:37 +02:00
Fredrik Höglund
01e1aef395 Find libepoxy 2014-07-14 12:04:37 +02:00
Fredrik Höglund
828a455fae Add Findepoxy.cmake 2014-07-14 12:04:37 +02:00
l10n daemon script
ae9689a105 SVN_SILENT made messages (.desktop file) 2014-07-14 03:49:40 +00:00
l10n daemon script
bd098e9080 SVN_SILENT made messages (.desktop file) 2014-07-13 03:59:17 +00:00
Hrvoje Senjan
79d29096f2 Drop explicit Qt5Widgets_EXECUTABLE_COMPILE_FLAGS
It is automagically pulled in by imported Qt5:: targets,
and also fixes build where POSITION_INDEPENDENT_CODE is not available.

REVIEW: 119237
2014-07-12 09:27:36 +02:00
Jonathan Riddell
97f38e3e87 bump versions for... Plasma 5.0! 2014-07-10 15:45:41 +02:00
Thomas Lübking
75a298a4fb allow FS mapping of geometry restricted windows
and copy isSpecialWindow() check as rulebook input
to setFullscreen()

Client::isFullScreenable() checks:
* fullscreen rule
* fullscreen_hack (-> for normal windows)
* geometry restrictions
* special window

Client::manage() for fullscreeining checks:
* fullscreen rule (with correct "initial" parameter)
* fullscreen_hack

-> this breaks the fullscreen rule for geometry restricted windows
and causes inconsistent behavior between client requests at runtime
(which do not test ::isFullScreenable()) and on mapping.

Otoh, the specialWindow() protection should apply generally - those
kind of windows should not be fullscreened since the user can not
exit this state via kwin for them - and there's hardly a good reason
for them to be fullscreen, esp. not to enter that state at runtime

REVIEW: 118442
CCBUG: 335617

Cherry-picked from kde-workspace
43229afee9fac4303e3d280ea63f96f034b3ffb5
2014-07-10 13:36:50 +02:00
Martin Gräßlin
5185fe81cf make trackmouse FX account paintdata scale/trans
REVIEW: 118537
CCBUG: 333012

cherry-picked from kde-workspace
e9919695e57612055acfc685707210c00a42ce00.

Original author: luebking
2014-07-10 13:36:44 +02:00
l10n daemon script
e231be7c7c SVN_SILENT made messages (.desktop file) 2014-07-10 04:23:36 +00:00
l10n daemon script
1a99520426 SVN_SILENT made messages (.desktop file) 2014-07-09 03:36:32 +00:00
Martin Gräßlin
c40bdc1bb2 [aurorae] Use QMutexLocker in AuroraeClient's dtor
It's possible that the rendering thread is still writing to the
buffer and if we destroy the buffer before it's finished KWin is going
to crash. So let's mutex lock the dtor to ensure that the rendering
thread finishes before we tear down the client.

BUG: 336950
2014-07-07 13:49:10 +02:00