-
Notifications
You must be signed in to change notification settings - Fork 128
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
Adding 'once' option to GrowToEdge action. #7
base: work
Are you sure you want to change the base?
Conversation
Currently the code rolls its own binary search, but now that we have a well-tested binary search implementation in obt/ we can make use of that.
This extend the client_find_resize_directional() method to support two growing modes, and return a bool for whether it was able to grow/shrink. The client_find_resize_directional() method now takes an enum instead of a bool, with two growing modes. The old mode which always tries to grow, the a new mode that will only grow if the client's edge is not already at a grow stopping point (ie against the edge of another window).
This change points out how useless the return value from client_find_resize_directional() was, so it also removes that. When all edges are blocked, the FillToEdge action will try to grow all four edges agin without blocking any of them on their current edge. This more closely matches the behaviour of the GrowToEdge action.
The "once" option will work on GrowToFill and GrowToEdge* actions... What do you think changing the name of this option to "confined"? It would be more clear it's purpose... |
About "once" vs "confined" I agree "once" isn't ideal, but I'm not sold on confined either. If you window overlaps another window, it'll still grow more until the edge of the next window. I'll think about names some more, but once is good for now I think. |
Made new pull request: #8 |
https://bugzilla.icculus.org/show_bug.cgi?id=3356#c24