finestructure / Hummingbird

A macOS utility that makes window management a breeze
https://hbird.app
MIT License
218 stars 19 forks source link

Resize from all corners #23

Closed cotfas closed 3 years ago

cotfas commented 4 years ago

I know that right now it only supports resizing from bottom right, but it will be more productive to resize from all corners.

Window:

1 2
3 4

Example, if the mouse is in the 1 arrea and the resize is triggered, to be able to resize from top left, if the mouse is in the 3 arrea and the resize is triggered, to be able to resize from bottol left, etc.

finestructure commented 4 years ago

I believe I tried that but had some issues with it, both technically and from a usability point of view.

It might be worth revisiting if there's broader interest!

cotfas commented 4 years ago

From my point of view as usability the resize is not 100% UX as most of the times we have to use also the move trigger.

wfaulk commented 4 years ago

I'd vote for this as well. I'm moving over from Zooom/2, which finally stopped working as of Catalina. It supported resizing from all four corners.

cotfas commented 4 years ago

Hey, I have tried something and I see why is not 100% reliable, it has a weird flickering on the right side, see the video attached.

What I tried on the resize method, adding also moving functionality.

The AXUIElementSetAttributeValue does not have some setup for sizing but to change the x/y window point from leftTop to other points (rightTop for example..)??

rec.mov.zip

code.txt

finestructure commented 4 years ago

Thanks for sending that through, @cotfas !

Could you perhaps push you changes into a fork so it’s easier to see it in context?

I don’t quite recall what my issues were when I investigated this way back but I imagine one problem might be that resizing the lower corner is done by only changing the window size. For any of the other corners you’ll also have to update the position and that might mess with some variables if you’re not correctly tracking deltas.

I’ll need to spend a little time on this to see how that would work!

cotfas commented 4 years ago

Hey, these are the two src files that I have changed so that the left bottom corner is used for resizing instead of bottom right.

Depending on where the cursor is on screen/or window to use a particular code on which corner to use should not be hard.

The hardest part is to avoid that flickering on resizing when other corners are used beside the right bottom.

Edit: Maybe I'm doing something wrong (some code delays) and that`s why the flickering.

files.zip

finestructure commented 4 years ago

Thanks @cotfas , I'll take a look!

cotfas commented 4 years ago

What do you think, it will work faster without the window thickening?

finestructure commented 4 years ago

I've only had a chance to have a brief look at your changes. I don't think they're quite there yet but I'll need to try myself to get better idea! Bear with me :)