control: fixed -1 4:6.3.2.1-1
Le samedi 22 février 2025, 08:10:53 UTC+1 Antonio a écrit :
> Dear Maintainer,
>
> I found a patch that avoids the desktop freeze, at least until the
> problem is solved. Using the system I have not seen any side effects, so
> I think it might be useful to include it in the "kwin-wayland" package
> to avoid unwanted desktop freezes.
>
> The path (see below) affects the "libkwin6_6.3.0.1-2_amd64.deb" package
> that contains the "/usr/lib/x86_64-linux-gnu/libkwin.so.6.3.0" library.
>
> see also https://bugs.kde.org/show_bug.cgi?id=499913
>
> Thanks,
> Antonio
>
>
> --- a/kwin-6.3.0/src/window.cpp 2025-02-06 12:01:48.000000000 +0100
> +++ b/kwin-6.3.0/src/window.cpp 2025-02-21 15:06:37.885455302 +0100
> @@ -50,6 +50,12 @@
> #include <QMouseEvent>
> #include <QStyleHints>
>
> +#include <time.h>
> +#include <unistd.h>
> +time_t maxtime=1;
> +useconds_t waitmsec=10;
> +
> +
> namespace KWin
> {
>
> @@ -1542,7 +1548,9 @@
> int lastVisiblePixels = -1;
> QRectF lastTry = nextMoveResizeGeom;
> bool titleFailed = false;
> - for (;;) {
> + time_t starttime=time(NULL);
> + while((time(NULL)-starttime)<maxtime) {
> + usleep(waitmsec);
> const QRect titleRect =
> bTitleRect.translated(nextMoveResizeGeom.topLeft()).toRect();
> const int requiredPixels = std::min(100 * (transposed ?
> titleRect.width() : titleRect.height()), titleRect.width() *
> titleRect.height());
>
> @@ -1665,7 +1673,9 @@
> }
> bool transposed = false;
> QRectF bTitleRect = titleBarRect(nextMoveResizeGeom, transposed);
> - for (;;) {
> + time_t starttime=time(NULL);
> + while((time(NULL)-starttime)<maxtime) {
> + usleep(waitmsec);
> QRectF currentTry = nextMoveResizeGeom;
> const QRect titleRect =
> bTitleRect.translated(currentTry.topLeft()).toRect();
> const int requiredPixels = std::min(100 * (transposed ?
> titleRect.width() : titleRect.height()), titleRect.width() *
> titleRect.height());
>
>