-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quicktile wastes space left clear by a small panel covering less than half of a screen dimension (GTK3 branch regression) #108
Comments
So it doesn't get lost, I'll reiterate that this is a known regression caused by...
|
I like to use real-world numbers in my regression tests when possible. Could you post the results of |
Status update: I'm part-way through refactoring to solve this by deferring the integration of panel reservations until after a candidate rectangle for the window has been generated. It'll mean that, in the common case, the row closest to the panel will get short shrift but "What's ~10-20px between friends?" and I can always special-case "panel extends the full length of the monitor's edge" to crop the usable rectangle at the beginning once I have more automated tests. Speaking of automated tests, the part I'm currently caught up on is the One of my unrelated tests managed to trigger an edge case I knew about but had put off, and now I'm trying to decide the least disruptive way to fix it properly. ( EDIT: The problem is trying to find a way to keep the "what direction should I go?" code unified. For At the moment, I'm planning to try changing the algorithm from "minimum distance moved" to "maximum area preserved for If it works, it'll result in calculating the intersection twice for subtraction, but, as they say, premature optimization is the root of all evil. |
Thanks for the long and highly technical status update. It goes quickly from topic to topic regarding quicktile internals. May be interesting to anyone willing to dive into code.
Sure. On "old" branch (not gtk3):
On
|
I've been trying to incorporate the relevant bits into the API docs, both as text and as cross-references. ...and, as I suspected, switching to "maximize area of overlap with original position" seems to have done the trick except for one new pathological case... if the test window is entirely within the reserved area, in which case, all overlaps have zero area and the motion is essentially random. I made it more deterministic and minimally pathological by adding euclidean distance as a secondary sorting key to fall back to and then wound up factoring out the resulting code into a It's not perfect, but I don't want to get carried away refactoring to plumb in a After all, how much of a pressing need is there for target rectangles that are narrower/shorter than the panels on the edges they're trying to occupy? (A big part of my strategy for maintainability these days is building solid primitives with extensive unit tests that I can trust to match my intuition when I'm working on the higher-level stuff, but learning not to get caught up in making things perfect to the detriment of actually making things was a long, hard journey.)
Added to the test suite and my local copy is currently passing the test. In fact, the only thing keeping me from pushing an 0.4.0 release candidate for testing is that I want to write some unit tests for my solution to #45. |
I don't have an exact view on everything, seems sane. Well quite a lot on activity on quicktile these days. I guess your degree and other stuff is okay. In all cases, thanks for the past, current and future work! |
OK. Anyone who wants to test it, the contents of |
Context
gtk3_port branch
How to reproduce
Expected
Observed
The text was updated successfully, but these errors were encountered: