Add more control over whether dragging should undo the previous window resizing action

In Advanced Snap Settings we have a checkbox labeled “Restore window size if window is dragged away again”, which seems to affect all window resizing actions. When disabled, the setting not only disables auto-restore but also causes the “Restore Old Window Size” action to do nothing.

This means that users have to choose between always restoring automatically and never being able to restore even on demand. I think this is too broad a brush. Whether the automatic un-resizing makes sense depends heavily on the situation: sometimes the result of a resize operation is inteded as a temporary state (e.g., a tiled layout), and sometimes it’s intended as permanent (e.g., setting a window’s dimensions to their default values). In the latter case, I absolutely do not want auto-restore to occur. (I’m aware of Opt-drag, but it’s not ideal because the dragging might happen long after the resize. I would basically have to learn to always Opt-drag.)

To accommodate both use cases, I propose to make the behaviour configurable at the action level — at least for the “Custom Move / Resize Window” action. Alternatively, retaining the ability to utilize the “Restore Old Window Size” action when auto-restore is turned off globally would be helpful.

I'm not sure I fully understand. What kind of option would you like?
BTT can not know whether the change is intended or not, or do you have an idea for that?

Sorry about the lack of clarity. The actual request is simply that I’d like to be able to set the “Restore window size if dragged away” preference at the action level instead of globally.

To illustrate, the configuration window for “Custom Move / Resize Window” could contain a dropdown labeled “Restore old window size when dragged away” with the following options:

  • Use global default
  • Yes
  • No

In the absence of such configurability, I’m tempted to turn off the global setting, but it’s not a great solution because it also disables the “Restore Old Window Size” action. If that action could be made to work regardless of the global auto-restore setting, then that would also mostly solve this issue for me because I’m not picky about the manner of triggering the restore (drag/hotkey).

In short, I’d like to get rid of the mandatory restore yet be able to utilize it for some resize definitions / snap areas or at least invoke it on demand using the dedicated action.

I have just figured out that what originally prompted this feature request may actually be a bug.

Starting out from a blank slate, dragging a window that has been resized via the Custom Resize action does not cause it to automatically revert to its previous size, but I can still restore the previous dimensions by specifically invoking the Restore Old Window Size action. This is exactly how I initially expected it to work.

However, things change as soon as at least one snap area has been defined. A window resized via Custom Resize will start behaving like one resized via a snap area: dragging it causes its previous dimensions to be restored unless the relevant setting in Advanced Snap Settings is turned off.

The window doesn’t have to interact with the snap area in any way. Simply having a snap area defined will alter the behaviour of Custom Resize. Once I remove the snap area and restart BTT, the original behaviour is resumed.

If this is indeed a bug and Custom Resize could be made to always work the way it does in the absence of snap areas, then that would pretty much solve this issue for me; I could use Custom Resize for window templates that are intended as “permanent” (no auto-restore) and continue to use snap areas for temporary ones — as I was originally planning to do.