rxhanson / Rectangle

Move and resize windows on macOS with keyboard shortcuts and snap areas
https://rectangleapp.com
Other
25.1k stars 742 forks source link

Cycle through display no longer maximizes windows when moving from smaller to larger window #1264

Open corneliusroemer opened 9 months ago

corneliusroemer commented 9 months ago

I have Repeated commands: cycle through displays set in preferences.

Since version 0.71, when I move a window (maximized on smaller screen) from smaller to larger screen (on a two screen setup), it no longer is maximized on the larger screen. I'm pretty sure that behavior was different up to version 0.70 as I can't remember ever noticing this. It's possible that this issue only appears on a strictly two screen setup (I usually either have 0 or 2 external monitors wired up, right now I have 1).

The issue is, that I can no longer just click ctrl+option+enter twice, to move a window to a different screen and have it maximized there.

Interestingly, waiting doesn't seem to help either. It seems there is no time out for the "repeated commands" activation. Maybe if you only count something as repeated if it happens within at most 5 seconds, that would be a workaround. Then I'd just have to wait before moving the screen.

I know, I could also use the normal moving window to different screen shortcut ctrl+option+cmd+left/right but somehow I just prefer to cycle and maximize, it's less to remember. 99% of my rectangle usage is ctrl+option+enter to both: maximize AND cycle.

macOS version: 13.5.2 (arm) Rectangle version: 0.71 Logs if applicable (In Rectangle menu, hold option, "View Logging..."):

2023-09-19T15:28:14+02:00: AX sizing proposed: (2560.0, 1440.0), result: (2135.0, 770.0)
2023-09-19T15:28:14+02:00: AX position proposed: (-452.0, -1440.0), result: (-452.0, -1440.0)
2023-09-19T15:28:14+02:00: AX sizing proposed: (2560.0, 1440.0), result: (2560.0, 1440.0)
2023-09-19T15:28:14+02:00: maximize | display: (-452.0, 1117.0, 2560.0, 1440.0), calculatedRect: (-452.0, -1440.0, 2560.0, 1440.0), resultRect: (-452.0, -1440.0, 2560.0, 1440.0), srcScreen: LU28R55, destScreen: LU28R55, resultScreen: LU28R55
2023-09-19T15:28:15+02:00: AX sizing proposed: (1728.0, 1085.0), result: (1728.0, 1085.0)
2023-09-19T15:28:15+02:00: AX position proposed: (0.0, 32.0), result: (0.0, 32.0)
2023-09-19T15:28:15+02:00: AX sizing proposed: (1728.0, 1085.0), result: (1728.0, 1085.0)
2023-09-19T15:28:15+02:00: maximize | display: (0.0, 0.0, 1728.0, 1085.0), calculatedRect: (0.0, 32.0, 1728.0, 1085.0), resultRect: (0.0, 32.0, 1728.0, 1085.0), srcScreen: Built-in Retina Display, destScreen: Built-in Retina Display, resultScreen: Built-in Retina Display
2023-09-19T15:28:16+02:00: AX sizing proposed: (2560.0, 1440.0), result: (1728.0, 1085.0)
2023-09-19T15:28:16+02:00: AX position proposed: (-452.0, -1440.0), result: (-452.0, -1440.0)
2023-09-19T15:28:16+02:00: AX sizing proposed: (2560.0, 1440.0), result: (2180.0, 1440.0)
2023-09-19T15:28:16+02:00: maximize | display: (-452.0, 1117.0, 2560.0, 1440.0), calculatedRect: (-452.0, -1440.0, 2560.0, 1440.0), resultRect: (-452.0, -1440.0, 2180.0, 1440.0), srcScreen: LU28R55, destScreen: LU28R55, resultScreen: LU28R55
2023-09-19T15:28:17+02:00: AX sizing proposed: (1728.0, 1085.0), result: (1728.0, 1085.0)
2023-09-19T15:28:17+02:00: AX position proposed: (0.0, 32.0), result: (0.0, 32.0)
2023-09-19T15:28:17+02:00: AX sizing proposed: (1728.0, 1085.0), result: (1728.0, 1085.0)
2023-09-19T15:28:17+02:00: maximize | display: (0.0, 0.0, 1728.0, 1085.0), calculatedRect: (0.0, 32.0, 1728.0, 1085.0), resultRect: (0.0, 32.0, 1728.0, 1085.0), srcScreen: Built-in Retina Display, destScreen: Built-in Retina Display, resultScreen: Built-in Retina Display
2023-09-19T15:28:17+02:00: AX sizing proposed: (2560.0, 1440.0), result: (1728.0, 1085.0)
2023-09-19T15:28:17+02:00: AX position proposed: (-452.0, -1440.0), result: (-452.0, -1440.0)
2023-09-19T15:28:17+02:00: AX sizing proposed: (2560.0, 1440.0), result: (2180.0, 1440.0)
2023-09-19T15:28:17+02:00: maximize | display: (-452.0, 1117.0, 2560.0, 1440.0), calculatedRect: (-452.0, -1440.0, 2560.0, 1440.0), resultRect: (-452.0, -1440.0, 2180.0, 1440.0), srcScreen: LU28R55, destScreen: LU28R55, resultScreen: LU28R55
rxhanson commented 9 months ago

Thanks for reporting with details. This issue was introduced by macOS somewhere around when Ventura was originally released, and it appears to affect only certain displays, and maybe certain Macs. I still don't have a workaround for it, since it's a timing sensitive issue and I typically don't like solutions that involve performing an action then polling for some time to see whether or not they correctly took effect - it tends to lead to more bugs or slow feeling behavior.

Version 0.71 had only one code change and it was regarding the processing of window information upon down click for drag to screen edge snapping behavior (a workaround for a different macOS bug), so it's fairly safe to rule out a Rectangle change causing this for you. If you do end up trying out old versions of Rectangle and find one that does work, then I'll analyze the differences and should be able to come up with a solution.

AdamBroadcom commented 9 months ago

I am having a similar issue. I have a large external monitor which I use at the same time as my macbook screen. The drag and snap feature only works part of the time on my external monitor, but works fine when the window is on my macbook screen. I would gladly enable debug to help you find the root cause of this issue. This just started happening in the last week.

In case it helps, I can still click on the rectangle app and choose "left half"/"right half" and it works properly. I have had a mac os update and a rectangle update in the last week, so I don't know which caused the issue. If there is a link to .70 version of rectangle, I would love to install that and see if the issue goes away.

Thanks much

rxhanson commented 9 months ago

@AdamBroadcom thanks for letting me know. There is already a discussion around this topic, located here: https://github.com/rxhanson/Rectangle/discussions/1265