- 15 Oct, 2021 2 commits
-
-
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 6 commits
-
-
Xaver Hugl authored
BUG: 442603 (cherry picked from commit d55011ae)
-
Vlad Zahorodnii authored
Connection deletes the ConnectionAdaptor, but they are in different threads, which is weird. CCBUG: 442104 (cherry picked from commit 6513c66c)
-
Vlad Zahorodnii authored
When libinput tears down, it may access the Session object. This change re-jitters the shut down logic so the Session object is guaranteed to be valid when libinput stuff gets destroyed. BUG: 442104 (cherry picked from commit d7d1c660)
-
Vlad Zahorodnii authored
CCBUG: 442104 (cherry picked from commit 7900068c)
-
Vlad Zahorodnii authored
Allow passing -1 screen id to clientArea() until the effects are ported to EffectScreen. (cherry picked from commit 6b313268)
-
Vlad Zahorodnii authored
clientArea() was changed to forbid "-1" screen ids, but it seems like the thumbnail aside effect can pass it to refer to the active screen. This change makes the thumbnail aside effect handle "-1" screen id case explicitly. It will be also useful for EffectScreen transition. BUG: 443166 (cherry picked from commit 21da7b7e)
-
- 30 Sep, 2021 3 commits
-
-
Xaver Hugl authored
(cherry picked from commit eeb1bd5b)
-
Vlad Zahorodnii authored
x11DesktopNumber property was replaced with the desktops property, which is a list of desktop ids. (cherry picked from commit 721bfe17)
-
Vlad Zahorodnii authored
If the virtual desktops rule is created, only the last virtual desktop the window is on is going to be checked. With this, all virtual desktops that the window is currently on will be checked. Technically, it's an api breaking change, but the window rules kcm is the primary user of queryWindowInfo() so I don't think it's a big deal. (cherry picked from commit 66badd90)
-
- 29 Sep, 2021 1 commit
-
-
Vlad Zahorodnii authored
(cherry picked from commit 57a8d5ca)
-
- 28 Sep, 2021 5 commits
-
-
Xaver Hugl authored
(cherry picked from commit 6ca530e0)
-
This change limits the brute force output configuration search routine to test only commits, it's way more efficient than real commits. CCBUG: 442603
-
Blobs are not reference counted if used by other drm master, if kwin re-uses a deleted blob in an atomic commit, it will fail. For example, on my computer, this happens when kwin starts after xorg. Besides that, kwin may try to destroy blobs that it doesn't own, which is not fatal but it's strange to do so. CCBUG: 442603 CCBUG: 439873
-
(cherry picked from commit 6cf06022)
-
While findWorkingCombination should never fail, in the case it does KWin should not crash. To achieve that simply restore the old config in case of failure. CCBUG: 439873 (cherry picked from commit de674e08)
-
- 27 Sep, 2021 2 commits
-
-
Xaver Hugl authored
DrmGpu::updateOutputs is now changing the state of some drm properties without changing the fitting output state (namely RenderLoop inhibition) which can lead to rendering being inhibited indefinitely in some cases (cherry picked from commit 7bca5d73)
-
Vlad Zahorodnii authored
Software-based clipping is naive. It maps the clip region from the global screen coordinates and intersects it with window quads. If the window is transformed, the quads won't be clipped as expected. Unfortunately, the OpenGL scene enables software-based geometry clipping if the screen transformed. It's not clear why it does so, perhaps as a performance optimization? Either way, this produces incorrect results when the screen is scaled. BUG: 440940 (cherry picked from commit 0f6aa1c4)
-
- 26 Sep, 2021 2 commits
-
-
BUG: 438010 (cherry picked from commit 242de437)
-
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"
-
- 25 Sep, 2021 1 commit
-
-
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"
-