KWin merge requestshttps://invent.kde.org/plasma/kwin/-/merge_requests2022-10-13T21:08:17Zhttps://invent.kde.org/plasma/kwin/-/merge_requests/3041Sync activities after kwin restart2022-10-13T21:08:17ZAaron RainboltSync activities after kwin restartActivities are loaded async. During this time any fetch of activity
information is incorrect as we will treat any settings as invalid.
We need to ignore attempts to set activities during this time, but also
refresh Window's concept of a...Activities are loaded async. During this time any fetch of activity
information is incorrect as we will treat any settings as invalid.
We need to ignore attempts to set activities during this time, but also
refresh Window's concept of activities once we are loaded.
BUG: 438312
(cherry picked from commit d4713767 and adapted for KWin 5.24.6)5.24https://invent.kde.org/plasma/kwin/-/merge_requests/2797effects/colorpicker: Fix off-by-one error during coordinates conversion2022-08-09T19:48:19Zivan tkachenkoeffects/colorpicker: Fix off-by-one error during coordinates conversionDue to this bug color picker used to not only select one pixel higher
than it should (which is quite negligible), but also returned garbage
value for the topmost row of pixels (when you push the cursor against
the top edge of the screen)...Due to this bug color picker used to not only select one pixel higher
than it should (which is quite negligible), but also returned garbage
value for the topmost row of pixels (when you push the cursor against
the top edge of the screen).
FIXED-IN: 5.24.7, 5.25.5, 5.26<br/>
(cherry picked from commit f892c9510eb5c79e1b9f1a86777db626c2d72576)5.24ivan tkachenkoivan tkachenkohttps://invent.kde.org/plasma/kwin/-/merge_requests/2796effects/colorpicker: Fix off-by-one error during coordinates conversion2022-08-09T19:00:31Zivan tkachenkoeffects/colorpicker: Fix off-by-one error during coordinates conversionDue to this bug color picker used to not only select one pixel higher
than it should (which is quite negligible), but also returned garbage
value for the topmost row of pixels (when you push the cursor against
the top edge of the screen)...Due to this bug color picker used to not only select one pixel higher
than it should (which is quite negligible), but also returned garbage
value for the topmost row of pixels (when you push the cursor against
the top edge of the screen).
FIXED-IN: 5.24.7, 5.25.5, 5.265.24ivan tkachenkoivan tkachenkohttps://invent.kde.org/plasma/kwin/-/merge_requests/2777backends/drm: fix blob updating2022-08-04T17:58:53ZXaver Huglbackends/drm: fix blob updating@nicolasfella @ngraham I managed to reproduce your problem, and found the most dumb bug imaginable. This should fix the problems you're seeing
Two things about the code were wrong:
1. m_current is used in updateBlob() but was only updat...@nicolasfella @ngraham I managed to reproduce your problem, and found the most dumb bug imaginable. This should fix the problems you're seeing
Two things about the code were wrong:
1. m_current is used in updateBlob() but was only updated afterwards. This caused most of the problems
2. the assumption that the property having the same ID means it has the same blob contents is not always true
BUG: 4492855.24Xaver HuglXaver Huglhttps://invent.kde.org/plasma/kwin/-/merge_requests/2706effects/colorpicker: Fix picking colors2022-07-22T23:15:08ZNate Grahameffects/colorpicker: Fix picking colorsDue to the wrong buffer format, the function failed with
GL_INVALID_OPERATION error, which was silently ignored by the effect.
It resulted in the constant phantom color being returned over and over
again.
Co-Authored-By: David Edmundson...Due to the wrong buffer format, the function failed with
GL_INVALID_OPERATION error, which was silently ignored by the effect.
It resulted in the constant phantom color being returned over and over
again.
Co-Authored-By: David Edmundson <kde@davidedmundson.co.uk>
BUG: 454974
FIXED-IN: 5.24.7, 5.25.4, 5.26
(cherry picked from commit df6331b60aa03e65f146e93d0229cdc6dc956bbd)5.24Nate GrahamNate Grahamhttps://invent.kde.org/plasma/kwin/-/merge_requests/2702effects/colorpicker: Fix picking colors2022-07-22T23:08:16Zivan tkachenkoeffects/colorpicker: Fix picking colorsDue to the wrong buffer format, the function failed with
GL_INVALID_OPERATION error, which was silently ignored by the effect.
It resulted in the constant phantom color being returned over and over
again.
Co-Authored-By: David Edmundson...Due to the wrong buffer format, the function failed with
GL_INVALID_OPERATION error, which was silently ignored by the effect.
It resulted in the constant phantom color being returned over and over
again.
Co-Authored-By: David Edmundson <kde@davidedmundson.co.uk><br/>
BUG: 454974<br/>
FIXED-IN: 5.24.7, 5.25.4, 5.26
---
It would be nice to have a test, but I'm new to KWin codebase, and testing looks quite complicated.
Also needs manual cherry-picking onto 5.24 due to changes on adjacent lines.5.24ivan tkachenkoivan tkachenkohttps://invent.kde.org/plasma/kwin/-/merge_requests/2651input: don't forward gestures used by KWin to applications2022-07-28T10:23:15ZXaver Huglinput: don't forward gestures used by KWin to applicationsIf both compositor and applications were to use these gestures at the same time, that would be quite confusing for the user. This also works around a bug in Wine that makes applications crash.
BUG: 455952If both compositor and applications were to use these gestures at the same time, that would be quite confusing for the user. This also works around a bug in Wine that makes applications crash.
BUG: 4559525.24Xaver HuglXaver Huglhttps://invent.kde.org/plasma/kwin/-/merge_requests/2626[kcm/kwindesktop] Emit rowsChanged signal to fix default state highlighting2022-07-13T17:40:18Zivan tkachenko[kcm/kwindesktop] Emit rowsChanged signal to fix default state highlightingWithout this, the rowsChanged signal wasn't emitting at startup, so the
binding `highlight: kcm.desktopsModel.rows !== 2` didn't work correctly.
FIXED-IN: 5.24.7 5.25.3 5.26
![image](/uploads/739aae5f38f4121054bafbe9bcc94a34/image.png)Without this, the rowsChanged signal wasn't emitting at startup, so the
binding `highlight: kcm.desktopsModel.rows !== 2` didn't work correctly.
FIXED-IN: 5.24.7 5.25.3 5.26
![image](/uploads/739aae5f38f4121054bafbe9bcc94a34/image.png)5.24ivan tkachenkoivan tkachenkohttps://invent.kde.org/plasma/kwin/-/merge_requests/2564backends/drm: fix enabled+inactive check2022-06-24T01:05:09ZXaver Huglbackends/drm: fix enabled+inactive checkWhen dpms disabled outputs get set active, they require a modeset. If after that they are set inactive again without resetting the pipelines first, they no longer require a modeset but still have the pending properties that would enable ...When dpms disabled outputs get set active, they require a modeset. If after that they are set inactive again without resetting the pipelines first, they no longer require a modeset but still have the pending properties that would enable a crtc - but without a framebuffer set.
To prevent this, first test the current setup as it is, and only then see if the pipelines would work if enabled again.
This is a situation that happens almost always when outputs are dpms disabled and the system goes to standby; the awoke() signal that turns the outputs on gets processed only after a change event from udev. Because of that, this should be backported to 5.245.24Xaver HuglXaver Huglhttps://invent.kde.org/plasma/kwin/-/merge_requests/2511wayland: Explicitly initialize surface size to 02022-06-13T09:49:56ZVlad Zahorodniiwayland: Explicitly initialize surface size to 0QSize() will construct an invalid size. An invalid size has width and
height set to -1. In other words, QSize() != QSize(0, 0). This can create
issues when computing the bounding rect of a surface that has invisible
subsurfaces.
For exa...QSize() will construct an invalid size. An invalid size has width and
height set to -1. In other words, QSize() != QSize(0, 0). This can create
issues when computing the bounding rect of a surface that has invisible
subsurfaces.
For example, if the subsurface rect is QRect(0,0 -1x-1), the top-left
corner of the bounding rect will be affected.
In order to make computation of the bounding rect robust, initialize the
surface size to 0 explicitly.
BUG: 4545355.24Vlad ZahorodniiVlad Zahorodniihttps://invent.kde.org/plasma/kwin/-/merge_requests/2494Ignore fake input devices when detecting tablet mode2022-06-06T17:38:17ZAlexander VolkovIgnore fake input devices when detecting tablet modeOtherwise launching firefox, which in turn leads to launching of
xdg-desktop-portal-kde, disables auto-rotation.Otherwise launching firefox, which in turn leads to launching of
xdg-desktop-portal-kde, disables auto-rotation.5.24Alexander VolkovAlexander Volkovhttps://invent.kde.org/plasma/kwin/-/merge_requests/2485Fix typo in latency policy2022-05-30T06:49:54ZMalte DronskowskiFix typo in latency policyThe lowest latency setting wasn't applied because the internal
implementation contained an excess 'e' in comparison to the setting
exposed to the user
BUG: 453694The lowest latency setting wasn't applied because the internal
implementation contained an excess 'e' in comparison to the setting
exposed to the user
BUG: 4536945.24https://invent.kde.org/plasma/kwin/-/merge_requests/2448Backport "Ensure that Toplevel::output() stays always in sync with geometry"2022-05-23T07:41:28ZVlad ZahorodniiBackport "Ensure that Toplevel::output() stays always in sync with geometry"Should fix the crash in Workspace::activeOutput()
BUG: 448064Should fix the crash in Workspace::activeOutput()
BUG: 4480645.24Merge ServiceMerge Servicehttps://invent.kde.org/plasma/kwin/-/merge_requests/2379effects/overview: hide panels2022-05-13T15:37:24ZMarco Martineffects/overview: hide panelsThis makes it consistent with WindowView (and the panel window doesn't respond
to input anyways even if shown, which is misleading).
BUG: 444274
FIXED-IN: 5.24.6This makes it consistent with WindowView (and the panel window doesn't respond
to input anyways even if shown, which is misleading).
BUG: 444274
FIXED-IN: 5.24.65.24Merge ServiceMerge Servicehttps://invent.kde.org/plasma/kwin/-/merge_requests/2355backends/drm: allow the separator to be escaped in KWIN_DRM_DEVICES2022-05-09T08:29:07ZXaver Huglbackends/drm: allow the separator to be escaped in KWIN_DRM_DEVICES':' conflicts with the file names in /dev/dri/by-path, so allow it to be
escaped with '\\'
CCBUG: 453386':' conflicts with the file names in /dev/dri/by-path, so allow it to be
escaped with '\\'
CCBUG: 4533865.24https://invent.kde.org/plasma/kwin/-/merge_requests/2314outputconfigurationinterface: don't crash if mode is invalid2022-04-29T18:52:40ZXaver Hugloutputconfigurationinterface: don't crash if mode is invalidWhen the client issues the request, the compositor may have already destroyed the mode object.
BUG: 453042
FIXED-IN: 5.24.5When the client issues the request, the compositor may have already destroyed the mode object.
BUG: 453042
FIXED-IN: 5.24.55.24https://invent.kde.org/plasma/kwin/-/merge_requests/2306backends/drm: reduce "max bpc" to what is actually used2022-04-28T13:44:29ZXaver Huglbackends/drm: reduce "max bpc" to what is actually usedThis prevents triggering a bug in the BenQ GW2765 monitor, and should in theory have no downsides. With more advanced color management we might have to watch out later on, but as it's only a single buggy monitor so far I don't expect it ...This prevents triggering a bug in the BenQ GW2765 monitor, and should in theory have no downsides. With more advanced color management we might have to watch out later on, but as it's only a single buggy monitor so far I don't expect it to be a big problem.
BUG: 449906
FIXED-IN: 5.24.55.24https://invent.kde.org/plasma/kwin/-/merge_requests/2234effects/kscreen: don't use xcb on Wayland2022-05-17T11:59:08ZXaver Hugleffects/kscreen: don't use xcb on WaylandNo idea why the crash in the bug report happens, but we don't need to use it on Wayland and if we don't use it, it can't crash.
BUG: 450564
FIXED-IN: 5.24.5No idea why the crash in the bug report happens, but we don't need to use it on Wayland and if we don't use it, it can't crash.
BUG: 450564
FIXED-IN: 5.24.55.24https://invent.kde.org/plasma/kwin/-/merge_requests/2228Small cleanups found when looking at code2022-05-17T11:58:14ZAleix Pol GonzalezSmall cleanups found when looking at code* tabbox: Do not leak QKeyEvents
* redundant endif+if* tabbox: Do not leak QKeyEvents
* redundant endif+if5.24https://invent.kde.org/plasma/kwin/-/merge_requests/2222Desktop grid, swapping desktops: only swap windows on current activity.2022-05-17T11:56:20ZKishore GopalakrishnanDesktop grid, swapping desktops: only swap windows on current activity.In the desktop grid effect, dragging an empty area of a desktop to
another desktop swaps all windows on the two desktops. This change makes
sure that this matches only windows in the current activity.
BUG: 386769
PS: I've tested this c...In the desktop grid effect, dragging an empty area of a desktop to
another desktop swaps all windows on the two desktops. This change makes
sure that this matches only windows in the current activity.
BUG: 386769
PS: I've tested this change on the 5.24 branch, and it works on my machine. I can't build master on my machine right now.5.24