Commit Graph

13070 Commits (fe7a6834b200d2192ae1b50779e9017c6463e5c3)

Author SHA1 Message Date
Martin Gräßlin 048f60f388 Merge branch 'Plasma/5.3' 2015-04-10 10:46:21 +02:00
Mika Allan Rauhala 1af7ed1220 Fix DecorationPalette loading when kdeglobals lacks WM group
Currently, if a color scheme lacks the WM group, DecorationPalette
doesn't load it so we can fallback to kdeglobals color scheme. If
kdeglobals doesn't have WM group we get black decorations.

This change will always load the kdeglobals color scheme even if it
is missing WM group.

REVIEW: 123320
2015-04-10 10:45:19 +02:00
Lasse Liehu 88e76d5fd4 Merge branch 'Plasma/5.3' 2015-04-09 22:52:30 +03:00
Lasse Liehu c17195fb28 Fix extraction of two messages in kcmkwinrules
This adds previously untranslatable strings "Yes" and "No"
from yesnobox.h.

CCMAIL: kde-i18n-doc@kde.org
REVIEW: 123311
2015-04-09 22:47:37 +03:00
Jonathan Riddell a6b8756cf1 Update version number for 5.3.90 2015-04-09 16:30:33 +02:00
Martin Gräßlin cfe84aa9de [autotests] Fix TestScriptedEffectLoader::testLoadAllEffects 2015-04-09 14:58:05 +02:00
Jonathan Riddell d2c488ea44 Update version number for 5.2.95 2015-04-09 12:30:09 +02:00
l10n daemon script c8de289e6f 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-04-09 10:02:17 +00:00
Yuri Chornoivan 4e140399c7 Fix typo 2015-04-08 16:19:37 +03:00
Thomas Lübking fb39fafc71 add eye On Screen effect for showing desktop
resembles the homescreen effect on "eye" OS

REVIEW: 122679
2015-04-07 23:59:18 +02:00
Thomas Lübking 83a42c55be ScriptedEffect: gauss curve anim and ended signal
latter allows to chain actions in scripted effects
and former prevents the need to do that for a continuous
in/out animation
2015-04-07 23:59:18 +02:00
Thomas Lübking 0103b0fee6 Add Window Aperture effect for showing the desktop
It moves windows to nearest corners
2015-04-07 23:59:18 +02:00
Thomas Lübking 060f3e9403 Remove AnimationData wrapper around metadata.
Instead allow to set metadata directly in animation
objects

REVIEW: 122679
2015-04-07 23:59:18 +02:00
Thomas Lübking c5bb84469d make window elevation scriptable 2015-04-07 23:59:17 +02:00
Thomas Lübking 4a9b56d950 forward showingDesktop signal to effects 2015-04-07 23:59:17 +02:00
Thomas Lübking c2a120019b emit signal when showingDesktop changes 2015-04-07 23:59:17 +02:00
Thomas Lübking 0e22088bf4 add "MinimizeAll" script
to compensate withdrawn core feature (which
though has been hidden so far)
2015-04-07 23:59:17 +02:00
Thomas Lübking 0b6a804701 break showingDesktop w/ tabbox/PW/DG
This is now crucial, because while before
(the minimized) windows were conditionally
shown, but are now always behind the desktop.
Also, it makes the tabbox more consistent.

BUG: 344083
REVIEW: 122679
2015-04-07 23:59:17 +02:00
Thomas Lübking cbfcd3b096 implement showingDesktop by raising desktop window
This is an alternative approach suggested by the
NETWM spec.
The advantage is, that windows are not minimized
at all what apparently lead to some confusion
about the nature of the mode (which was abused
to tidy up) and a secret config key to allow for
that unrelated behavior.
Instead the ShowDesktopIsMinimizeAll key is removed
and replaced by a dedicated script + shortcut.

Bonus: less code to remember "minimized" windows =)
2015-04-07 23:59:17 +02:00
Thomas Lübking d94f3c8577 remove secret showDesktopIsMinimizeAll feature
REVIEW: 122679
2015-04-07 23:59:16 +02:00
Thomas Lübking 08b7b4818b unmaximize from partial to enter quick tiling
BUG: 345423
FIXED-IN: 5.3
2015-04-07 23:59:16 +02:00
l10n daemon script 262da1b7c9 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-04-07 13:20:00 +00:00
Martin Gräßlin 465721bb59 [scene-qpainter] Fill decoration render rect with Qt::transparent
Used to be Qt::red which sounds a lot like testing code made it into a
a commit...
2015-04-02 17:39:02 +02:00
Martin Gräßlin d2cd10861b [wayland] Use a DPI of 96 to calculate physical size for the server's outputs
Not perfect but better than a hardcoded physical size.
2015-04-02 17:36:38 +02:00
Martin Gräßlin 2b185fa7e0 [wayland] Set internal cursor through WaylandCursorTheme in AbstractBackend
Getting the cursor image from the cursor theme is unfortunately not
straight forward. We have three different libraries and all have
drawbacks:
* XCursor - we just kicked it out
* xcb-util/cursor - only provides xcb_cursor_t, so a dependency on X
* wayland-cursor - only a client side API

The picked solution is using wayland-cursor. It provides the cursor in a
wl_buffer. Unfortunately the client side API does not easily allow to
a) read it back
b) init without a wl_shm_pool

Thus we need to work this around:
* create an internal connection
* get a ShmPool on it
* init WaylandCursorTheme with this ShmPool
* get the cursor wl_buffer from the theme
* trigger a roundtrip
* get the corresponding BufferInterface for the buffer
* set the content as the software cursor
2015-04-02 14:37:23 +02:00
Martin Gräßlin 265af8e7ed [wayland] WaylandCursorTheme takes ShmPool instead of WaylandBackend
Allows to use the WaylandCursorTheme without needing a WaylandBackend.
WaylandBackend was only used for getting the ShmPool.
2015-04-02 14:25:51 +02:00
Martin Gräßlin bb404f7d67 [wayland] Fix checking id to Surface in xwayland client message
We need to also pass the client to the verification.
2015-04-02 09:49:39 +02:00
Mika Allan Rauhala e1e437135b Fix Background Contrast during Present Windows
We already set WindowForceBlurRole for docks during Present Windows. This also sets
WindowForceBackgroundContrastRole.

REVIEW: 122904
BUG: 341926
2015-04-01 16:48:22 +02:00
Martin Gräßlin c5693270db [wayland] Add support for a "software" cursor
At least the framebuffer backend does not have support for an overlay
cursor. Thus the cursor needs to be rendered by the scene. This change
allows a backend to set that it needs a software cursor which triggers
tracking in the AbstractBackend. A repaint for the old cursor region is
triggered whenever the cursor pos changes.

So far only the QPainter/framebuffer scene is adjusted to render the
software cursor. This is done after rendering a frame with the up to
date cursor position.

There is one problem, though: the KWin internal cursors don't work
as we need to get it from the theme. Using wayland-cursor doesn't help
as it gives us a (client) wl_buffer* and we cannot read the memory back.
2015-04-01 15:36:40 +02:00
Martin Gräßlin de3788c094 [wayland] Add a framebuffer backend
The framebuffer backend currently only supports the QPainter backend
if the format matches RGB32.

It does not yet support any cursors.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 30dd2ce466 [input] Add support for VT switch shortcuts
If we have a VirtualTerminal and get a XKB_KEY_XF86Switch_VT_* keysym
we trigger a VT switch.
2015-04-01 11:05:45 +02:00
Martin Gräßlin f4005c7f74 [wayland] Add initial support for taking over VirtualTerminals
A new Singleton VirtualTerminal is added. It interacts with Logind to
get the VTNr to take over. To get the signal to release and acquire the
VT we use a signalfd with a QSocketNotifier to monitor for signals. The
used signals must be blocked for all threads prior to startup otherwise
they are delivered to secondary threads causing issues.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 3d5899cbfd [logind] Add support for VTNr property 2015-04-01 11:05:45 +02:00
Martin Gräßlin 61579506e3 [input] Only update seat state if session is active
When our session gets inactive libinput loses all devices, thus our
Seat would not have neither keyboard, pointer nor touch. To not confuse
all connected clients we block updates while libinput is suspended. After
resume we check whether something actually changed and emit the
corresponding signals to ensure everything is up to date.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 634fd68446 Ensure screens are created before fully setting up libinput
Parts rely on screens being available but input might be created
before screens are available. Thus connect to signal and delay.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 90b1980ce0 Emit signal in Application once Screens are created 2015-04-01 11:05:45 +02:00
Martin Gräßlin c23e106c8b [input] Include more safety checks
nullptr checks as input events might be processed prior to KWin having
been fully started.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 7a96c3ee46 [input] Disconnect the logind connection once setupLibInput is called
Don't want it to be called again if we lose session control.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 26c44a6524 Add recursion check to LogindIntegration::takeControl
We never want to call takeControl twice at the same time.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 2a39e6290b [input] Try updating the modifiers after each key press
TODO: send new modifier information to wayland server.
2015-04-01 11:05:45 +02:00
Martin Gräßlin b824175e05 [input] Set a default xkb modifier map 2015-04-01 11:05:45 +02:00
Martin Gräßlin 2b0a837340 [wayland] Create QPainterBackend through the AbstractBackend
SceneQPainter delegates creation to the AbstractBackend removing the
casting logic.
2015-04-01 11:05:45 +02:00
Martin Gräßlin e1ae0b8bc4 [wayland] Create OpenGLBackend through the AbstractBackend
Replaces casting logic in the SceneOpenGL. Now the create is delegated
to the backend allowing also to move the ifdef logic to where it belongs.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 00844ffba7 Bind cmake option HAVE_WAYLAND_EGL to KWIN_HAVE_EGL
If we don't have EGL we also do not want Wayland_EGL.
2015-04-01 11:05:45 +02:00
Martin Gräßlin 65839e1617 [wayland] Create Screens through the AbstractBackend
The AbstractBackend provides a virtual method to create the Screens.
A concrete backend can implement this method to create the backend
specific Screens instance.

This removes the casting logic from Screens::create.
2015-04-01 11:05:45 +02:00
Mika Allan Rauhala 3389c7569f Adapt to KDecoration API changes
Adapt to API changes introduced by b62e8888cd39301e00ad98dfe791fa66676408fb.
It adds DecoratedClient::color(group, role) for getting colors that are
not included in QPalette. Breeze used to read these colors from
kdeglobals, breaking per window color schemes. KWin now handles reading
these colors along with QPalette loading with DecorationPalette.

REVIEW: 122883
2015-03-31 15:26:55 +02:00
Martin Gräßlin 66e92347a8 [wayland] Initialize WaylandSeat::m_touch
Without it results in a nice crash when trying to use with touch support.
Having ways to test clearly improves ;-)
2015-03-31 11:22:58 +02:00
Mika Allan Rauhala 2217c1038f Add Quick Tile Window to the Top and Bottom shortcuts
This adds "Quick Tile Window to the Top" and "Quick Title Window to the Bottom" shortcuts. These are
useful for those using displays that are in portrait orientation.

CCBUG: 310005
REVIEW: 123153
2015-03-31 11:10:13 +02:00
Martin Gräßlin f7bed6a003 [libinput] Pass device capabilities to Wayland::Server::SeatInterface
We handle device added/remove to monitor whether we have keyboard,
pointer and touch devices and emit signals. Those are used to update
the SeatInferface from InputRedirection.
2015-03-26 16:19:26 +01:00
Martin Gräßlin 93b3626a37 [libinput] Try to dispatch events directly after setup
Without we might end in a race as kwin_wayland might start the Xwayland
server before we have a populated seat interface.
2015-03-26 16:17:51 +01:00