Commit Graph

14061 Commits (bd5f6420978a882d2b532faaee49512d98c300a2)

Author SHA1 Message Date
Thomas Lübking fab806df92 avoid pointless kbd grab on moveresize
This makes (Qt5?) clients believe they lost input, ie. are no longer
active and change their visual representation.

REVIEW: 126266
2015-12-08 20:32:32 +01:00
Martin Gräßlin e5a27cffb1 [wayland] Disallow ptrace on kwin_wayland process
In order to increase the security we disable ptrace on kwin_wayland.
This makes it impossible for a another process running as the same
user to attach to kwin_wayland to install a key logger. It doesn't
protect against higher privileged users, but that's no problem: they
can just read the input device file and don't need to attach to KWin
to become a key logger.

This change is highly inspired by a similar change to kscreenlocker.
A difference is that KWin checks whether we are running under a
debugger. In such a case we still want to allow ptrace.
2015-12-08 11:42:48 +01:00
l10n daemon script c6aafe23de SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-12-06 09:17:34 +00:00
Martin Gräßlin 03909b9d58 Allow rendering of input method windows also if screen is locked and OpenGL is used
Needed to get maliit keyboard above the greeter window.

Reviewed-By: Bhushan Shah
2015-12-04 16:37:54 +01:00
Martin Gräßlin 8e66832ba3 Allow rendering of input method windows also if screen is locked
Needed to get maliit keyboard above the greeter window.

Reviewed-By: Bhushan Shah
2015-12-04 16:13:35 +01:00
Martin Gräßlin e2dc6380d1 [wayland] Pass processStartupEnvironment to ScreenLocker
Need to pass a proper env to ScreenLocker to ensure we don't mess
with the greeter's environment by e.g. unsetting QT_IM_MODULE or
setting EGL_PLATFORM.

Reviewed-By: Bhushan Shah
2015-12-04 16:09:47 +01:00
Jan Kundrát 7c8adeff9e Fix build with Qt 5.6
A recent change [1] led to Qt5PlatformSupport.pc not being installed
anymore. Pkg-config was only used for finding the paths, and the actual
include flags and library names were hardcoded in KWin's
FindQt5PlatformSupport.cmake anyway, so let's just focus on finding
Qt5Gui, the module which provides this Qt5PlatformSupport library, and
work from there.

Thanks to Hrvoje Senjan (shumski) for pointing me towards the upstream
Gerrit change.

[1] https://codereview.qt-project.org/140954/

REVIEW: 126234
2015-12-03 18:28:10 +01:00
Jonathan Riddell ca7bf7dbe4 Update version number for 5.5.0
GIT_SILENT
2015-12-03 11:27:16 +00:00
Jonathan Riddell 7940a0d16d Update version number for 5.5.90
GIT_SILENT
2015-12-03 11:16:43 +00:00
Martin Gräßlin c5959a5ffa Fix regression in EglOnXBackend caused by b1914b4b2c
The ctor used by kwin_x11 still had the call to init which is now
performed by SceneOpenGL. This means init was performed twice
ultimately hitting an assert when creating the overlay window.
2015-12-02 09:51:28 +01:00
l10n daemon script 0dd2917cba SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-12-01 10:31:47 +00:00
Martin Gräßlin 9f8a6d8e24 Merge branch 'Plasma/5.5' 2015-12-01 08:01:00 +01:00
Martin Gräßlin d89777bcac Make Wayland::EGL optional again
This is needed to make KWin build-able on non-Linux, but is actually
only a workaround. The dependency should also be available on non-Linux.

This disables the EGL integration in the Wayland backend (QPainter still
available) and the EGL fallback in the qpa plugin (preferred context
sharing still available, but requires a working OpenGL Scene).

REVIEW: 126202
2015-12-01 07:58:47 +01:00
Martin Gräßlin a055e2de82 Only compile VirtualTerminal if libinput is found
The implementation of VirtualTerminal is too linux specific and doesn't
compile on e.g. freebsd. Currently the most usage is in combination with
libinput. Only usage is:
* libinput related functionality in InputRedirection
* backends without custom input handling

Thus binding the feature to whether libinput is available is currently
the least invasive approach to get it compile on non-Linux.

In the long run this needs a different solution. The functionality
provided by VirtualTerminal is required and without the backends don't
work. It's needed to get notified about VT switches, when KWin needs to
stop rendering. So a solution for non-Linux needs to be found if
non-Linux wants to provide Wayland in future.

REVIEW: 126182
2015-12-01 07:57:39 +01:00
Rohan Garg 8680586dbd Add a check for waylandServer in the dtor before using it
Make sure the waylandServer ptr exists before referencing it
in the dtor.

REVIEW: 126190
2015-11-30 15:58:27 +01:00
l10n daemon script c8e0a4b975 SVN_SILENT made messages (.desktop file) 2015-11-30 13:09:41 +00:00
l10n daemon script f17e9c2e68 SVN_SILENT made messages (.desktop file) 2015-11-29 11:40:15 +00:00
l10n daemon script f96f4a9fd1 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-11-29 09:02:55 +00:00
l10n daemon script acfef30207 SVN_SILENT made messages (.desktop file) 2015-11-26 18:12:55 +00:00
l10n daemon script e24e39b528 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-11-26 15:58:56 +00:00
Martin Gräßlin 04ea8ec22f [backends/x11] Add a dedicated EGL backend for multi-surface rendering
Based on the existing EglOnXBackend. Main difference is that this
subclass implements perScreenRendering with support for one EGLSurface
per output.
2015-11-26 08:33:07 +01:00
Martin Gräßlin f8e7d58dea Refactoring of EglOnXBackend to allow implementing subclasses
The aim is to allow having an implementing subclass which uses
multiple windows to render to.
2015-11-26 08:33:07 +01:00
Martin Gräßlin b1914b4b2c Add pure virtual OpenGLBackend::init() method
All backends already have an init method so far called from the ctor.
This change moves the call to init out of the OpenGL backends and makes
it the responsibility of the creating code to also call init on the
backend.

This change makes it easier to have virtual methods being called during
the initialization.
2015-11-26 08:33:07 +01:00
Martin Gräßlin 8b4d1a2f3f [wayland] Properly set position of OutputInterface on creation
Before all outputs were positioned at 0/0 in a multi-nested window
setup.
2015-11-26 08:33:07 +01:00
Martin Gräßlin 56bd1e7194 [wayland] Add support for initial output count for nested compositors
Added to x11 backend which creates one window per output.

New command line option is called --output-count=<int>.
2015-11-26 08:33:07 +01:00
Martin Gräßlin 1e3013b58c [backends/x11] Prepare for multi-output rendering
The backend is prepared for managing multiple x11 windows. Currently
it's still only one window, but it's all internally working through
the architecture for multiple windows.
2015-11-26 08:33:07 +01:00
Martin Gräßlin f5905e5e48 [backends/x11] Prepare QPainter backend for multi screen rendering
The backend is in principal ready to render to multiple X11 windows.
This will allow simulating a multi screen setup.
2015-11-26 08:33:07 +01:00
Martin Gräßlin ee7f70afc8 [wayland] BasicScreens can serve multiple screens
For this AbstractBackend has a new virtual screenGeometries() method
which returns a QVector<QRect>. By default it's just one QRect at 0/0
with the size of the one screenSize().
2015-11-26 08:33:07 +01:00
Martin Gräßlin 7c5fc2ff96 Merge branch 'Plasma/5.5' 2015-11-26 08:31:52 +01:00
Martin Gräßlin 38cde38edf Ensure Scene doesn't render non lock screen windows while screen is locked
The last stage for window rendering is triggered by
Scene::finalDrawWindow. Adding a security check there if screen is locked
no non-lock screen window should be rendered.

Unfortunately this method is virtual so the check needs to be done in the
base and all implementing child methods (currently only OpenGL).

REVIEW: 126144
2015-11-26 08:30:57 +01:00
Martin Gräßlin 3e007b5198 [effects] Disable more effects while screen is locked
Most of those effects didn't need special screen locking handling on
X11 as they prevented screen locking. On Wayland though, we don't
want the lock screen shown on a cube.

REVIEW: 126122
2015-11-26 08:30:29 +01:00
l10n daemon script c69c46d8ca SVN_SILENT made messages (.desktop file) 2015-11-25 18:20:33 +00:00
l10n daemon script 2a444656e6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-11-25 15:48:08 +00:00
Thomas Lübking 117e7a9823 Merge branch 'Plasma/5.5' 2015-11-25 00:01:26 +01:00
Thomas Lübking 3525d1ce02 explicitly update the stack track on unminimization
the stackingOrderChanged() signal came before the window turned an effect window
usually this is no problem as the change shall not be caught anyway, but
the window may have changed its stack position

BUG: 353745
FIXED-IN: 5.5
REVIEW: 126134
2015-11-24 22:38:49 +01:00
Thomas Lübking e2632f3816 correctly scale and position logout window
window wasn't correctly represented in
zoom, present windows and desktop grid effects

on the fly code streamlining:
- logout and above windows were handled equally in different code paths
- windows were painted on 0 opacity instead of just aborting the paint

local semi-paintdata because PaintData isn't assignable
(const dptr, I think) and we're post freeze.

BUG: 355539
FIXED-IN: 5.5
REVIEW: 126133
2015-11-24 22:38:01 +01:00
Martin Gräßlin 6fa3c58951 Merge branch 'Plasma/5.5' 2015-11-23 11:49:35 +01:00
Martin Gräßlin 3361373445 [backends/hwcomposer] Announce support for DPMS
Hooked up to toggle blank output dependent on state.

REVIEW: 126095
2015-11-23 11:48:39 +01:00
l10n daemon script 0c453d520f SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2015-11-22 09:56:21 +00:00
Jonathan Riddell c1e991068e Update version number for 5.5.90
GIT_SILENT
2015-11-19 13:14:04 +00:00
Jonathan Riddell d7398c4f50 Update version number for 5.4.95
GIT_SILENT
2015-11-19 11:39:24 +00:00
Martin Gräßlin 416d8060cf Don't query for GL_CONTEXT_FLAGS if not at least OpenGL 3.0
Patch by Thomas Lübking.

BUG: 355522
2015-11-19 11:20:33 +01:00
Martin Gräßlin 23784d2038 [wayland] Introduce an additional --exit-with-session command line arg
This is similar to the applications to start. That is the value of the
command line argument is interpreted as a command to start.
The difference is that when this application exits, KWin will also quit.
The argument is so to say interpreted as a session.

Reviewed-By: Bhushan Shah
2015-11-19 09:28:51 +01:00
Martin Gräßlin eabddf939b Add path to kwin_wayland binary to KWin's installed CMakeConfig
The absolute path is needed by e.g. startplasmacompositor.

REVIEW: 126106
2015-11-19 09:28:16 +01:00
Yuri Chornoivan 7a57e8c20a Fix minor typo 2015-11-18 19:07:09 +02:00
Martin Gräßlin 681113e4a6 [wayland] Reset internalWindow if the QWindow gets destroyed
Prevents use after free usages.

Reviewed-By: Bhushan Shah
2015-11-18 15:43:54 +01:00
Martin Gräßlin 4d883a9cda Ensure pointer position is updated before screen locker enforcement
We need to update the pointer position, also if the screen is locked.
Otherwise the pointer doesn't move on the locked screen with libinput.

In addition we need to use the m_globalPointer for finding the correct
lock screen window as updatePointerWindow also does sanity checking on
the coordinates.

Also we need to introduce security checks where we use the signal.

REVIEW: 126103
2015-11-18 14:42:23 +01:00
Martin Gräßlin 3be016fba4 [wayland] Destroy all ClientConnections on tear down
Ensures that all Wayland objects are destroyed and the cleanup handling
is performed before tearing down the Compositor. This fixes for example
a crash if a Surface with a Shadow is still around at tear down.
2015-11-18 10:29:10 +01:00
Thomas Lübking 12b63e2aa7 remove deleted windows from motionmanagers
Eg. if a window is closed while "timeline.currentValue() == 0",
slotWindowClosed() will shortcut exit and not be removed from the
managers, thus dangle around forever.

Maybe there're other ways for a window to be deleted w/o
the closed slot being entered.

CCBUG: 339970
REVIEW: 126034
2015-11-17 21:30:43 +01:00
Thomas Lübking a4791e629d Add rule to protect the focus on a window
This allows to pin the focus on certain window as well
as to more easily give it away on others (typically launchers)

BUG: 185060
CCBUG: 337798
FIXED-IN: 5.5
REVIEW: 126059
2015-11-17 21:30:05 +01:00