rxhanson / Rectangle

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

Snap window by dragging still works when "Ignore X" is toggled for an application #1055

Closed francis2054 closed 1 month ago

francis2054 commented 1 year ago

macOS version: Ventura 13.1 Rectangle version: 0.64 (71) Logs if applicable (In Rectangle menu, hold option, "View Logging..."): This (below) happens when snapping when the app is ignored

2023-01-23T19:26:04+01:00: AX sizing proposed: (2560.0, 996.0), result: (1553.0, 995.0)
2023-01-23T19:26:04+01:00: AX position proposed: (0.0, 25.0), result: (0.0, 25.0)
2023-01-23T19:26:04+01:00: AX sizing proposed: (2560.0, 996.0), result: (2560.0, 995.0)
2023-01-23T19:26:04+01:00: maximize | display: (0.0, 59.0, 2560.0, 996.0), calculatedRect: (0.0, 25.0, 2560.0, 996.0), resultRect: (0.0, 25.0, 2560.0, 995.0), srcScreen: 29EA93, destScreen: 29EA93, resultScreen: 29EA93
2023-01-23T19:26:05+01:00: AX sizing proposed: (902.0, 914.0), result: (902.0, 914.0)

Not entirely sure if this is a bug or intended function

rxhanson commented 1 year ago

Thanks for reporting. This is intended functionality, although it is confusing.

Typically, the scenario that users would want drag snapping disabled for a specific app is if it negatively impacts that app's functionality; otherwise it is likely that a user would just disable it entirely. The reason it could negatively impact an app is because Rectangle will listen to click/drag events when it is enabled. There are only a small handful of apps that I've noticed that are negatively impacted, so I manually add those when they are reported, and Rectangle will stop listening to click/drag events when those apps are frontmost. If it were to do this for apps that are ignored, then windows in the background would not be drag-snappable until the frontmost app changes away from those ignored apps (not ideal).

We could make it do what you expect by checking the app of the window as it gets dragged, but up to this point you're the first to report anything on it so I suspect it's not in high demand. I don't mind merging a pull request that adds this if anyone wants to give it a go.

ok-andy commented 1 year ago

Would there be a way to let users manually add apps to the disable drag snapping list?

rxhanson commented 1 year ago

@ok-andy You can add this list yourself with a defaults command, where you fill in the bundle ids for the apps you want to additionally disable snapping for when the app is ignored:

defaults write com.knollsoft.Rectangle fullIgnoreBundleIds -string "[\\"com.example.bundleID\\"]"

(I use an app called prefseditor to easily edit defaults, so the exact syntax here with cancelling out the quotes might not be right, you might have to play around with it a bit)

Restart the app after executing the terminal command.

rxhanson commented 1 month ago

A while back, the default behavior became that ignoring an app would also ignore snapping.