- 25 Oct, 2021 2 commits
-
-
Andrey Butirsky authored
X11 can take float RepeatRate, Wayland - int only so the setting is to be rounded. Should be indistinguishable on usual rates. BUG: 443721 (cherry picked from commit 4395caa2)
-
Vlad Zahorodnii authored
The WindowThumbnail item uses the GLTexture class. In order to destroy the thumbnail texture, the item will schedule a destroy job. This means that the GLTexture can be alive during or after graphics reset. On the other hand, as an implementation detail, GLTexture::clear() may allocate a framebuffer object, which is going to be destroyed together with the last texture. Given that window thumbnail textures can be still alive after a graphics reset and the fact that GLTexturePrivate::s_fbo gets destroyed when the last texture is destroyed, kwin can end up trying to clear a decoration texture with now defunct s_fbo. Since the old old s_fbo is inert, the glBindFramebuffer() function will fail and the glClear() operation will affect the default framebuffer, thus leading to black flickering visual artifacts. In order to fix that issue, this change makes GLTexture destroy s_fbo unconditionally in GLTexturePrivate::cleanup() which is called whenever OpenGL stuff is about to tear down, e.g. due to graphics reset, etc. BUG: 443951 (cherry picked from commit fda7e150)
-
- 24 Oct, 2021 2 commits
-
-
Xaver Hugl authored
Without this there can be a mismatch between what clients expect and what KWin actually uses, causing for example stutter in video players. BUG: 444303 FIXED-IN: 5.23.2 (cherry picked from commit ca58ee87)
-
Script Kiddy authored
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"
-
- 22 Oct, 2021 3 commits
-
-
Xaver Hugl authored
(cherry picked from commit 49afd180)
-
InputDeviceHandler keeps track of which client has focus, and whether the decoration or main window has focus. Should the decoration get destroyed whilst the decoration has focus we don't update correctly. This can happen when "BorderlessMaximizedWindows" is set, or if you use key presses whilst above the decoration. cleanupDecoration (which is an odd name) is called whenever a decoration gains or loses focus. Here we can connect for the decoration destruction and force a focus change. BUG: 411884 (cherry picked from commit 566bfbff)
-
Xaver Hugl authored
If the filter filters out touchDown it also has to always filter out the matching touchUp (cherry picked from commit 0c7d9785)
-
- 20 Oct, 2021 4 commits
-
-
Xaver Hugl authored
When we're adding the output to the EglGbmBackend pipelines aren't necessarily setup yet and are thus missing the modifier list. As creating the gbm surface immediately is useless anyways, delay that until we need it, where the modifier list is available. (cherry picked from commit baebaa9e)
-
Xaver Hugl authored
Add a new environment variable KWIN_DRM_FORCE_EGL_STREAMS that, when set to an integer value other than 0, makes KWin prefer EglStreams over gbm. (cherry picked from commit ebaf2e61)
-
Xaver Hugl authored
(cherry picked from commit d257850b)
-
Xaver Hugl authored
(cherry picked from commit dc56b03d)
-
- 19 Oct, 2021 3 commits
-
-
Jonathan Esk-Riddell authored
GIT_SILENT
-
Xaver Hugl authored
m_primaryBuffer could be nullptr when a pipeline was inactive before, causing a crash (cherry picked from commit 17631398)
-
Script Kiddy authored
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"
-
- 18 Oct, 2021 3 commits
-
-
Xaver Hugl authored
This was inverted from 5.22, which switches plasma layouts and the default Xwayland primary screen. (cherry picked from commit 72af3093)
-
Vlad Zahorodnii authored
Before attempting to create scenes, kwin will redirect windows but if the opengl scene can't be created, it won't unredirect windows, which seems to cause issues on aarch64. BUG: 443953 (cherry picked from commit 85f8a533)
-
Vlad Zahorodnii authored
When geometry updates are blocked, the output doesn't get updated. This breaks Workspace::clientArea() overload that takes only the window. Previously, clientArea() would look up the output where the window is every time it's called, so the fact that the screen id or AbstractOutput is unsynchronized with the frame geometry was irrelevant. This change restores the old behavior as 5.23 is affected by the output() being out of sync with the frameGeometry(). Specifically, when kwin starts managing an X11 window, it will block geometry updates, setup the window, e.g. make it fullscreen, and unblock geometry updates. Since Workspace::clientArea(clientArea, Toplevel) uses the output(), X11Client::setFullScreen() will most likely put the X11 window at a wrong output if it's called inside X11Client::manage(). BUG: 443787 (cherry picked from commit 6d5fc9fd)
-
- 17 Oct, 2021 1 commit
-
-
Otherwise we crash when no decoration is set (e.g. Plasma Mobile) (cherry picked from commit ff618e9f)
-
- 15 Oct, 2021 3 commits
-
-
Vlad Zahorodnii authored
BUG: 443765 (cherry picked from commit f1e99e97)
-
Vlad Zahorodnii authored
The bounding rect of an item is in the item-local coordinate space. If the item is moved, its bounding rect won't change, but the parent's bounding rect, may change. BUG: 443756 (cherry picked from commit 59a4a908)
-
Vlad Zahorodnii authored
AbstractClient::constrainClientSize() forces the minimum client size of 1x1. If AbstractClient::adjustedSize() is called before the XdgToplevelClient is mapped, it will return 1x1 rather than 0x0 as expected, which will confuse QSize s = adjustedSize(); if (s != size() && s.isValid()) resizeWithChecks(s); in AbstractClient::applyWindowRules(). Since 1x1 is different from 0x0, the xdg-toplevel surface is going to be resized to 1x1. BUG: 443705 (cherry picked from commit ff3465a8)
-
- 14 Oct, 2021 1 commit
-
-
Heiko Becker authored
Since the KF5 version requirement was incremented to 5.86 the build started to fail (at least with KF 5.87.0) due to deprecations.
-
- 13 Oct, 2021 1 commit
-
-
At the moment we'll be setting the YInverted setting, but in practice that won't have any effect as it only changes the render matrix and we'll end up streaming inverted textures. This change addresses it by rendering it into another texture first to resolve this situation and then download that new texture instead. (cherry picked from commit c0718249)
-
- 12 Oct, 2021 2 commits
-
-
Andrey Butirsky authored
With lv3:ralt_alt ("Right Alt never chooses 3rd level") option set, we get more layouts from libxkbcommon than it was configured, see: https://github.com/xkbcommon/libxkbcommon/issues/262 It might be correct lib's behavior, still. The extra layouts are redundant, so we strip them out from usual usage. BUG: 440027 (cherry picked from commit 59143eee)
-
Script Kiddy authored
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"
-
- 11 Oct, 2021 1 commit
-
-
Jonathan Esk-Riddell authored
GIT_SILENT
-
- 07 Oct, 2021 3 commits
-
-
Jonathan Esk-Riddell authored
GIT_SILENT
-
Vlad Zahorodnii authored
Currently, the pointer is moved to the center of the workspace. However, on a multi-monitor setup, the workspace center may not be the same as the center of the output it's on. That's the case with my setup - 1920x1080, 1920x1080, 1080x1920 (the monitors are laid out in a row from left to right). This change improves the default placement of the pointer by actually moving it to the center of the screen that contains the workspace center so the pointer doesn't end up at some "random" position from the user's point of view. (cherry picked from commit 4f3ff4fb)
-
Xaver Hugl authored
(cherry picked from commit 9f69d4c9)
-
- 06 Oct, 2021 1 commit
-
-
Andrey Butirsky authored
Edge geometry has width and height, so we need the correction for approach geometry of bottom and right corners. The other edges are fixed as well. BUG: 442973 (cherry picked from commit c9b41a16)
-
- 05 Oct, 2021 1 commit
-
-
Vlad Zahorodnii authored
On X11, there are four input models. With some input models, it's okay if the window manager calls XSetInputFocus(), with others, the wm has to ask the client to make a XSetInputFocus() request. If kwin wants a client to take input focus, kwin will add the client to the should_get_focus list, which contains all the windows that are about to get input focus. Clients are popped from the list upon receiving FOCUS_IN events. A client will be added to the should_get_focus list even if kwin thinks that the client already has input focus because communication between the wm and xorg is async, anything can happen with input focus in meanwhile. On the other hand, the wm may sometimes focus the null window if no window should contain the input focus. The issue is that the should_get_focus list is not cleaned up in that case, which can lead to Workspace::mostRecentlyActivatedClient() returning wrong client and possibly other async related issues. We don't have such madness on Wayland as the compositor is in charge of handling input focus. This change makes Workspace::focusToNull() clear the should_get_focus, which is reasonable. We need to deactivate "in-flight" focus requests. This also fixes the bug where fullscreen Wayland windows don't go above docks and panels due to Workspace::mostRecentlyActivatedClient() returning bad client. BUG: 439405 BUG: 395919 (cherry picked from commit e6c77a1d)
-
- 04 Oct, 2021 7 commits
-
-
Xaver Hugl authored
BUG: 439986 (cherry picked from commit ef894f34)
-
Xaver Hugl authored
CCBUG: 440322 (cherry picked from commit 6a68caef)
-
Xaver Hugl authored
If the last enabled output gets removed but we have disabled outputs still connected, enable the first disabled output to prevent a crash. BUG: 442990 (cherry picked from commit 178e69b3)
-
Vlad Zahorodnii authored
Xwayland can re-create the wl_surface if the window has been previously unmapped. BUG: 442936 BUG: 426069 (cherry picked from commit 8ac93a59)
-
Vlad Zahorodnii authored
This makes Toplevel::setSurface() simpler. (cherry picked from commit 73162e8f)
-
Vlad Zahorodnii authored
Xwayland will re-create the wl_surface object if the X11 window is unmapped and mapped. That, and the fact that the order in which the WL_SURFACE_ID client message event is received and the wl_surface object is created is undefined can cause the following bug: * WL_SURFACE_ID is received * the old wl_surface object is destroyed, m_surfaceId is reset to 0 * new wl_surface is created but because m_surfaceId is 0, it won't be associated with the x11 window This change ensures that kwin will associate the wl_surface with x11 window by making it not reset cached surface id when the old wl_surface is destroyed. However, we cannot leave m_surfaceId as is because wayland aggressively re-uses object ids so kwin can associate wrong surface with x11 window. To prevent that, this change also makes Toplevel::setSurface() reset cached surface id. CCBUG: 442936 CCBUG: 426069 (cherry picked from commit 52c9dbb4)
-
Vlad Zahorodnii authored
AbstractDataSource::requestData() takes the ownership of the file descriptor. So the second close() will close an already closed fd. (cherry picked from commit 61eb8ce7)
-
- 03 Oct, 2021 1 commit
-
-
Xaver Hugl authored
It's not necessary, the placeholder output already gets created in DrmBackend::removeOutput if necessary. More improtantly it's missing the check for shutdown, which may cause issues if the computer is turned off while no outputs are connected. (cherry picked from commit d83da1cd)
-
- 01 Oct, 2021 1 commit
-
-
Xaver Hugl authored
BUG: 442603 (cherry picked from commit d55011ae)
-