Do not reset the size of window once we move it to an edge
AbandonedPublic

Authored by jgrulich on Jan 19 2018, 12:08 PM.

Details

Reviewers
graesslin
Summary

When moving a window to an edge, e.g. to the top edge to maximize it, we immediately
call configure() slot once the moveResize is done with empty parameters which effectively
resets the size to the initial state. This results into no effect once you move the window
to any edge.

Diff Detail

Repository
R108 KWin
Branch
kwin-move-resize
Lint
No Linters Available
Unit
No Unit Test Coverage
jgrulich created this revision.Jan 19 2018, 12:08 PM
Restricted Application added a project: KWin. · View Herald TranscriptJan 19 2018, 12:08 PM
Restricted Application added subscribers: KWin, kwin. · View Herald Transcript
jgrulich requested review of this revision.Jan 19 2018, 12:08 PM
graesslin requested changes to this revision.Jan 19 2018, 8:26 PM

Please also add a test case exposing the problem.

shell_client.cpp
300–301

we need to send the configure. Because the state also contains whether the window is being resized.

This revision now requires changes to proceed.Jan 19 2018, 8:26 PM

Please also add a test case exposing the problem.

Ok, will try to do so.

shell_client.cpp
300–301

I don't have the log from WAYLAND_DEBUG enabled at this moment, but there was definitely this state advertised together with the correct size, at least from what I remember it called configure ( (0x1 | 0x8), 1920, 1080) ) or so once I finished the move, but I didn't investigate what those flags mean.

graesslin added inline comments.Jan 20 2018, 2:42 PM
shell_client.cpp
300–301

Yeah, I don't doubt that this is the problem. In fact I consider it as very likely. Just we cannot remove the connects as that would break in other ways.

Actually I have an idea what change broke it. I recently reworked the request size blocker together with the BlockGeometryUpdate. I think I just removed one too many. I was probably too confident in the tests not breaking. But it's kind of obvious: the quick tiling tests only operate with wl_shell windows and not with xdg_shell.

Which also means for the tests: ideally it's sufficient to switch to xdg_shell or add xdg_shell. Most interesting could be the QuickTilingTest::testQuickTilingPointerMove

Another attempt to fix it based on the ideas of this change in D10156

jgrulich abandoned this revision.Apr 23 2018, 6:35 AM