If eglSwapBuffers() fails, frame scheduling will be broken. KWin can't
recover from that, but still, having a log message might be useful for
the debugging purposes.
This change moves the XRender backend to platformsupport directory,
similar to the OpenGL and the QPainter backend. This allows to put
platform-specific logic in XRenderBackend.
A window can be immovable due to various reasons, for example the window
position is enforced by a window rule or the window is shown in the full
screen mode. In which case, the move request has to be ignored.
If a move or a resize request is processed after the button is released,
the window will be stuck in the move/resize mode.
This change prevents that kind of race condition by adding relevant serial
checks in the move and the resize request handlers.
This reverts commit bcba2e252f.
This change broke a dozen of tests, most of which were fixed. However,
it made more clear that we need to re-evaluate if enabling this option
by default is a good idea.
In case hardware transforms can be used again, the shadow framebuffer
must be destroyed; otherwise rendered results will be distorted due to a
mismatch between the dimensions of the shadow framebuffer and the mode
size.
Currently, if an X11 or Wayland window is damaged, we will schedule a
repaint. This results in some code duplication that this change intends
to get rid of.
At the moment, the gbm_device for the primary device is destroyed before
the EGLDisplay is destroyed. This results in a crash in Mesa.
In order to fix the crash, this change ensures that the EGLDisplay is
destroyed before the gbm device.
This makes eglSwapBuffers() fail with per screen rendering enabled. In
long term, the screencast plugin has to create its own OpenGL context
and capture window frames after a compositing cycle has been performed.
However, it's currently tricky to do because of monitor screencasting.
There were multiple other cases of placing the mouse between screens at
the start of tests. It seems to be all copy paste.
Only maximise and pointerConstraints were failing before this, but we
may as well fix all of them.
Things such as move and resize are implemented on Wayland using event
filters that handle both X11 and Wayland clients.
Having both code paths enabled results in things getting performed
twice, e.g. window actions are executed twice, first in X11Client and
the second time in WindowActionsEventFilter.
This also fixes warnings produced by KKeyServer about an unsupported
platform.
Useful action, especially for heavy kwin rules users
As an example, this can help users to migrate their rules to Wayland
(where some matching properties such as window class may be different)
while keeping a version of the rule compatible with X11.
BUG: 429588
FIXED-IN: 5.21
This debug message is not helpful without knowing where it comes from.
In addition to that, it indicates that the lack of libinput connection is
bad, but it is not. For example, with the nested wayland compositor you
will never have a valid libinput connection, which is fine.
It's enough to give info about current layout only or all the layouts
altogether, so no need to pass layout to asqure in an argument.
P-W part:
impr: Keyboard Layout plugin: drop excessive DBus API method arguments
Night Color adjusts the color temperature based on the current time in
your location. It's not a generic color correction module per se.
We need a central component that can be used by both night color and
colord integration to tweak gamma ramps and which will be able to
resolve conflicts between the two. The Night Color manager cannot be
such a thing because of its very specific usecase.
This change converts Night Color into a plugin to prepare some space for
such a component.
The tricky part is that the dbus api of Night Color has "ColorCorrect"
in its name. I'm afraid we cannot do that much about it without breaking
API compatibility.
Variants are now stored separate from layouts in their own config entry.
P-D commit:
fix: [1/2] Keyboard Layout applet: layout Name doesn't fit if variant is set
As things are right now, we can only do 32bit textures for dmabuf (see
gbm_bo_format in gbm.h). This means that we were lying to our receivers
when we had 24bit textures by then giving a 32bit texture instead.
This changes it so we request a dummy texture before starting and if we
are offered one we assume they're available and offer a 32bits stream
directly (i.e. BGRA).
The buffer offset for client-side decorated windows is not 0, this plus
mixing the frame position and the client size may result in clipped
thumbnails of client-side decorated applications, such as gedit, etc.
BUG: 428595
If the client opted to position them on purpose, don't move them around.
If the geometry of the workspace changes it's their job to react
accordingly.
BUG: 429353