forked from RamonUnch/AltSnap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
AltSnap.txt
1705 lines (1249 loc) · 78.4 KB
/
AltSnap.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*=========================================================================*
* ALTSNAP for Windows NT4/2000/XP/Vista/7/8.x/10/11 *
* Modified by Raymond Gillibert from original AltDrag by Stefan Sundin *
* release 1.60 (March 24, 2023) *
*-------------------------------------------------------------------------*
* Download MEGA: https://mega.nz/folder/mW5ExCCT#gI8DQICICk-y4FIjxaqtGg *
* Download GitHub: https://github.com/RamonUnch/AltSnap/releases/ *
* Original Stefan Sundin: https://stefansundin.github.io/altdrag/ *
*=========================================================================*
== INTRODUCTION ==
AltSnap gives you the ability to move and resize your windows in a new way.
When AltSnap is running, you can simply hold down the Alt key and then click
and drag any window.
This behavior already exists in Linux and other operating systems,
and AltSnap was made with the mission to copy that behavior to the
Windows platform.
___________
MOVE WINDOW
You can Move a Window by pressing Alt and using (by default) the left mouse
button. If you double-click it will maximize/restore the window, and if you
hold Shift while double-clicking, it will roll/unroll the window on its
title bar.
_____________
RESIZE WINDOW
You can use (by default) the right mouse button to resize windows.
Imagine the window divided into nine squares, and you will resize the
corner nearest to where you press. The corners are slightly bigger
than the middle regions by default (adjust using AltSnap.ini).
____________________________________________
/ @ Title bar | | _ O X \
|===============+============+===============|
| top | top | top |
| left | | right |
|---------------+------------+---------------|
| | | |
| left | center | right |
| | | |
|---------------+------------+---------------|
| | | |
| bottom | | bottom |
| left | bottom | right |
|_______________|____________|_______________|
If you double-click (double right click) these regions, the window will be
moved to the respective corner on your screen (like Aero Snap), so you can
quickly arrange your windows to fit on the screen. If you press Shift in
addition, the respective window side will be extended to the monitor side.
Finally if you press Ctrl and double-click on the center region it will
maximize/restore the window.
The center region can be configured to behave differently (see options).
_____________
OTHER ACTIONS
AltSnap can be configured quite finely You can set any button to perform
any action among a list: Move, Resize, Close, Minimize, Maximize, Lower,
AlwaysOnTop, Borderless, Center, Roll, Menu, Kill and Nothing.
By default the middle mouse button is configured for the Maximize action,
that maximizes/restores the window. Press Shift to minimize.
____________________________
TRICKS YOU SHOULD KNOW ABOUT
* AltSnap will not bring windows to front by default. Press Ctrl to bring the
window to front, or configure AltSnap to do that automatically.
* AltSnap will mimic Aero Snap by default, so try dragging windows to the
edges of your monitor. Corners work too!
* If you use multiple monitors, you can hold Ctrl or Shift while dragging to
trap the window within the current monitor. This is particularly useful if
you want to Aero Snap at edges between monitors.
* While dragging, windows borders will snap to each-other. This behavior can
be changed in the config. If you disable it you can still press Shift while
dragging to force windows borders to snap to each other.
* If you have automatic snapping enabled, you can temporarily disable it by
pressing the space bar while dragging.
* If you are moving a window you can press the right mouse button to toggle
the maximized state.
* If you use the scroll wheel to change the volume, you can hold shift to
increase the rate the volume is changed. If you use the scroll wheel to
change the transparency, you can hold shift to decrease the rate the
transparency is changed.
* If you have Scroll inactive windows enabled, you can hold the Shift key to
scroll horizontally. Note that this relies on that the program has support
for normal horizontal mouse wheel scrolling, which not all programs have.
* If you can't move a particular window, try elevating AltSnap.
Normal programs can't interact with programs that are started with
administrator privileges.
* If you need to Alt+Click on a program and do not want to blacklist the
program, you can use the Winkey instead of Alt. If this is not enough
or if you do not want to use the Winkey, you can hit Ctrl and release it
while keeping Alt pressed and then click.
* A key combo can be used in order to activate AltSnap, this allows using
Alt+Winkey to drag windows and leaves alone the Win+Click and the Alt+Click
that some programs may require.
* Try to add the Shift modifier key for any action, usually it has an effect.
_____________
CONFIGURATION
To change the configuration from default, double-click on the tray icon, and
you will be presented with a lot of choices.
If you want to go further into the configuration, open the AltSnap.ini file
by middle-clicking on the tray icon. You will see all the option there with
a short description.
_________
LANGUAGES
AltSnap is fully translated in French, Italian and mostly translated in many
other languages. All translations are simple ini files encoded in UTF-16 LE.
If you want to create or improve a translation, just add or modify the
associated ini file in the Lang directory, and no not forget to send it to
me via a GitHub pull request/issue or PM me, so that everyone can enjoy your
translation. You can use "Lang\_en_US baseline.txt" as a starting point if
you want to translate everything to a new language.
______
UPDATE
To avoid useless bloat and potential vulnerability AltSnap no longer
auto-updates. You can check for new versions on the GitHub page
If you want automation, install altsnap via the chocolatey package.
-install with> choco install altsnap
-update with> choco update altsnap
-uninstall with > choco uninstall altsnap
You can do the same with winget. Note that the chocolatey/winget package
may take a few days before getting updated.
_________
BLACKLIST
Sometime an AltSnap action interacts with a window you do not want.
For example if you use Alt+Click on a specific window and you do not want
AltSnap to move the window you can add the window name to the windows
blacklist. more details below:
All the list are coma separated and take no spaces before the coma.
A space can be present in the item itself or before the item.
- Process blacklist: List of programs names for which move/resize from
AltSnap as well as the scroll actions are disabled. Example: Notepad.exe
- Windows blacklist: List of windows with the title|class format for which
move/resize actions from AltSnap will be disabled
Example: Program Manager|Progman,|Shell_TrayWnd,*|Notepad
- Windows that should ignore the scroll action: List of windows with the
title|class format that for which the scroll action of AltSnap will not
apply. Example: *|Photoshop
- MDIs not to be treated as such: List of windows for which AltSnap will not
try to find MDI subwindow. This only applies if the Support MDI is enabled
and by default contains *|PPTFrameClass,*|MMCMainFrame which correspond to
the PowerPoint window and all the Microsoft Management application such as
the services.msc windows or the device drivers window.
- Process not to be paused or killed: Only applies for the Pause and kill
action when enabled on Alt+Shift+Pause of Ctrl+Alt+F4,
this are program names.
Program names are pretty straightforward to find. However a finer control can
be done using the window's title|class information; they can be found for a
specific window using the small target in the identify window section of the
Blacklist tab. You can include all the possible names by using the *|class
format. This is useful for most programs that have a non-constant title, for
example notepad's title is actually the name of the file you are currently
editing.
The other way around can be used and you can specify title|* which means that
all the windows that have this title regardless of their class name will be
blacklisted. This is a much less common usage.
The title can also be empty for example: |Shell_TrayWnd corresponds to the
Windows task bar and has an empty title.
Finally more blacklists can be found in the AltSnap.ini file:
- Snaplist: List of windows with the name|clas format to which other windows
should snap. By default windows that have no borders cannot be snapped to.
- MMBLower: List of windows that should not be lowered with mouse middle
click on the title bar. Default: *|CASCADIA_HOSTING_WINDOW_CLASS that
corresponds to the Windows Terminal window.
===========================================================================
== USAGE ==
Extract to any folder, and double click on AltSnap.exe
Enjoy dragging windows...
You will see a new Icon in the tray
- Right click on the Tray Icon to see the option menu
- Left click on the Tray Icon to enable/disable
- Go to the "Configure" menu entry for basic options
- Middle click on the Tray Icon to open config file AltSnap.ini (advanced)
- You can hide the icon if you want. To show it again relaunch AltSnap.exe
AltSnap Wiki: https://github.com/RamonUnch/AltSnap/wiki
Note that this version has some more feature.
===========================================================================
== CHANGELOG ==
== AltSnap 1.60 ==
+ Added the `ZSnapMode` option in the [Zones] section of the ini file,
to change the strategy for choosing the zone zone on which the dragged
windows will snap. #405
Set to 0 to snap to the pointed zones (default, old behavior).
Set to 1 to snap to the zone which center is the nearest from cursor.
The second mode will be needed if you want to use overlapped zones.
+ The Test Window will now also display the mouse events.
+ The test Window will now have a full-screen mode (toggle with F11).
+ Added the `MenuShowEmptyLabelWin` Advanced option to display the windows
with empty titles inside the Windows list menu. #401 @mbartlett21
+ Add the **All windows list** action that will behave like the
Window list action but will even display windows outside the
current monitor. Thanks to @mbartlett21 for this. #384
+ You can now set `IgnoreMinMaxInfo` option in the Advanced section
of the ini file if you want to ba able to resize Windos beyond their
usual limits, Set to 0 (default) to always disable, set to 1 to ignore
the minimum size, 2 to ignore maximum size and 3 to ignore both. #374
+ You can set the `MenuShowOffscreenWin=1` in the [Advanced] section
of the ini file to still display windows in a windows menu even
if they are outside of any monitors. Thanks to @mbartlett21. #384
+ The *clear AltSnap state* key can now be set to any other key, using
the `ESCkeys` key list in the [Input] section of the ini file. Defalut
value is `1B` (ESCAPE), like with previous AltSnap versions. #386
* Fixed inconsistant key state leading to drag-free actions not working
and to blocked LMB in some cases. #392, #388.
* Fixed: Now FancyZones snapped Windows will be restored to their proper
dpi-scaled size. If this causes any issues for you you can always set
`FancyZone=2` in the [Zones] section to prevent scaling.
* Updated Chinese translation, thanks to @yatli,
Updated Polish translation, thanks to @xeophyte,
Updated German translation, thanks to @Ichisich
Updated French and Italian translations.
== AltSnap 1.59 ==
+ Now AltSnap will respect the system drag threshold. Use `DragThreshold`
value in the [Advanced] section of the ini file to determine when the
threshold will be respected. Possible values are:
0: disabled, like old AltSnap versions,
1: Enabled when restoring snapped window (default),
2: Always wait the drag threshold before moving the window,
3: Same than 2 but also applies to the resize action. #365
+ Generalized combo actions: Now you can select any action that will apply
if a move or a resize action was started. You can configure them in the
Mouse tab of the config dialog by selecting the **While moving** and
**While resizing** radio buttons. Those options are available via the
ini file in the [Input] section using the `M` and `R` sufixes.
ie: `MMBR=ExtendTNEdge`. Also an extra `B` sufix can be added for
alternate action (only available via ini). #217, #362.
+ Multiple *snap layouts* are now supported... #232
+ New `IScroll` blacklist in the `[Blacklist]` section of the ini file
That only applies to the Inactive scroll option. #351
+ Added the **Move/Extend to next edge** action, That will extend the next
edge from a snapped window, also available as keyboard shortcuts. #368
+ Added the `--help` option, also available as `-help` or `-?` or `/?`.
It will display a very short summary of available commands. #370
* Fixed: Now a hotclick will not always be blocked, It will be forwarded
in case no action was done. If you want a hotclick to always be blocked
set `AblockHotclick=1` in the `[Advanced]` section of the ini file.
* Fixed: Next/Previous stacked window keyboard shortcut no longer depends
on cursor position, unless you enabled **use pointed window**. #372
* Added the missing Next/Previous laser stacked window. #362
* Fix delay when forwarding a click in some cases. #352
* Fix button up being improperly blocked sometime. #355
* Fixed occasional crash when editing the config dialog.
* Updated German, Korean, French and Italian translations.
== AltSnap 1.58 ==
+ Tray icon theme support was added, put an icon theme in the Themes\
folder and then set `Theme=ThemeName` in the [General] secion of the ini
file. A theme is a folder containing three tray icons named: TRAY_OFF.ico,
TRAY_ON.ico, TRAY_SUS.ico. Thanks to @erasmion for supplying a theme,
You can try it with Theme=erasmion. #313
+ The maximum width in characters of an item in a window list menu can now
be set from 0-255 by the user using the `MaxMenuWidth` option in the
[Advanded] section of the ini file. Use 0 for unlimited, default is 80.
Thanks to @mbartlett21 for the pull request #341.
+ Side fraction can now be set independently from center fraction for more
flexible configuration. Have a look at the test window and play with those
values, accessible through the Advanced tab of the config dialog. #318
+ Blacklist were improved to allow a mix of both exe names and title|class.
You can now specify `exename.exe:title|class`. If you omit the ':' and '|'
the format is assumed to be an exe name only. If you only specify '|',
the exe check will be omitted and the format will be assumed to be
title|class, like it was the case before. Example: You want to blacklist
the `*|CabinetWClass` windows only if they are from explorer.exe, use:
`explorer.exe:*|CabinetWClass`.
+ New **Open ini file** option was added to the tray menu for easy access.
+ New: `MaxKeysNum` option can be set to specify the maximum number of
keys that can be pressed in order to activate AltSnap. This does not
apply to the keys that are pressed after activation, use the KillKeys
for this. Default value is 0 (unlimited). #324
* Fixed hotclicks not behaving properly for left and right mouse buttons
Now you can setup AltSnap to Move/Resize window with right click while
still being able to left click without drag. #340
* Fix Tray icon not displaying properly in some cases #315.
* Fix: No lines drawn in the test window when CenterFraction=0. #319
* Fix lockup when using hotclick on blacklisted window. Part of #334
* Styling options were fixed and AltSnap can now be build with -std=c99
-Wpedantic flags.
* TCHAR is now preferred over wchar_t so that code is more portable and
future proof
* Optimizations for ini file loading, this should reduce start time on
Slow media such as old HDD/CDRom/floppy.
* Updated German, French and Italian translations.
== AltSnap 1.57 ==
+ New keyboard actions to move the window in steps to each directions.
You have the choice between large steps and small steps. To setup the
size of the steps in pixels, use the `KBMoveStep` and `KBMoveSStep`
values in the [Advanced] section of the .ini file.
Default is 100 for large steps and 10 for small steps. #304
+ Now the *Restore Window* action is available as a mouse action and will
let you restore AltSnapped windows to their original size with a single
click. Setup as a titlebar action it can be used to better integrate
in the native snapping experiment. #292
+ Now the right mouse button can be used inside a menu item of a window
list to minimize the corresponding window. The middle mouse button will
close the window. he menu will remain opened. #290
+ Now the `NumberMenuItems` option can be set to 1 in the `[Advanced]`
section of the .ini file in order to number menu elements from 0-9
instead of A-Z. This applies to all windows list menu.
+ New: Window list action that list all windows on your monitors. It can
be an alternative to Alt+Tab. #298
+ New Laser stacked windows list action is now available as a mouse and
keyboard action previously it was only available with the shift modifier
on the Stacked windows list action.
+ New: You now have a *Send original click* option in the action menu
if you triggered it from the title bar. #302
+ New: You now have the **Movement Disabled** entry on the action menu
that will prevent AltSnap movement from happening in the window.
The flag can be enabled and disabled as desired for any window. #283
+ Now any keyboard shortcut can be setup to suspend/resume Altsnap. #283
+ New: AltSnap actions can now be Invoked from the command line. Actions
will behave like the corresponding keyboard action. AltSnap
must already be launched and the allow multiple instance option must be
disabled. Then you can Launch AltSnap:
`AltSnap.exe -apACTION` to perform the ACTION on the Pointed window
`AltSnap.exe -afACTION` to perform the ACTION on the Foreground window
example: AltSnap.exe -afAlwaysOnTop will toggle the topmost flag on the
foreground window. #285
* Now title or class blacklist item can match start or end with a `*`
ie: `*ttl|class*` or `*ttl|*class` or `ttl*|*class` or `ttl*|class*`
You cannot have a star at both ends of an item though. Previously
matching was limited to the `*ttl|class*` form. #305
* Now with the `EndSendKey` option in the [Input] section of the ini file,
you can specify which key will be sent at the end of a movement to
prevent menu being selection or the window menu from popping up
The default value is `EndSendKey=11` that corresponds to the Ctrl
key that is used since ever in AltSanp and AltDrag. #309
* Try as much as possible to Maximize/restore windows asynchronously to
avoid mouse locking.
* Fixed Stacked windows menu font is now the current system menu font
instead of the dialog font. #284
* Fixed: Crash in the Stacked window list. #284
* Fixed: Pressing ESC when cancelling a stack window menu will no longer
focus the first window of the list. #284
* Fixed: Some crashes in low memory situation.
* Fixed: The hooks.dll file will only be loaded from AltSnap's directory.
* Fixed: #239 Window transparency would sometime not be restored when
using the Opacity while moving option.
* Fixed: #295, Windows Terminal will no longer minimizes when selecting
the Minimize all other windows option.
* Fixed: Removes the topmost indicator or display the context menu when
the click is released instead of down for more consistent UI experience.
This will also allow to handle drags in the future if needed.
== AltSnap 1.56 ==
* Fixed Move windows with long left click option (1.55 regression).
* GUI: Minor adjustments to avoid clipping of the topmost indicator option
in the Advanced tab.
* Adjustments to the French translation by @TroudhuK
== AltSnap 1.55 ==
+ New action, you can now pop up a **Stacked window list** that will show
the list of windows that are stacked with the pointed window. You can
then select the window you want and it will be set to the foreground.
Shift extends the stack to all windows that are under the mouse pointer.
+ New action: **Next/Prev stacked window**, available as mouse action and
as wheel action. Again add shift to extend the stack.
+ New: Now an indicator for windows that were set AlwaysOnTop can be set.
Check the **Show an indicator on always on top windows** option in the
Advanced tab. The indicator will also show a list of other AlwaysOnTop
windows when right-clicked. You can also set the `PinColor` option in
the [Input] section of the .ini and the `PinRate` option in the
[Performance] section of the .ini can be used to set the color of the
indicator and the rate at which it gets refreshed.
+ New: You can now setup any keyboard shortcut for any action.
Note that this creates system level keyboard shortcuts and you will be
unable to setup a shortcut that already existed (this is a good thing).
Go to the Keyboard tab of the config dialog, select the option for which
you want to setup a shortcut, then edit it manually or click the
Pick keys button and press your shortcut, then hit the Save button.
You can decide whether those keyboard-only actions should apply to the
pointed or to the focused window. #264, #268
You will need to reconfigure Kill on Ctrl+Alt+F4 and such.
+ New keyboard-only actions to move/extend the window to the surrounding
zones in the snap layout.
+ New: Now you can set up `MoveUpT` and `ResizeUpT` actions to be
performed when the click was performed inside the titlebar.
CHECK YOUR CONFIG, as those options did not exist before and
will default to Nothing. The options were also added to the GUI.
+ New: Two Zoom window action that can be setup for a mouse wheel.
The first one will resize only vertically/horizontally when the
mouse points at the pure side sectors, and the second one will
always zoom proportionally instead. In addition you can adjust
the fraction by which the window is zoomed using the `ZoomFrac`
and `ZoomFracShift` options. #239
+ New: To fix menu not getting canceled in some cases, you can add the
`DragSendsAltCtrl` option in the [Advanced] section of the ini. #255
+ New now you can set the value of `BLUpperBorder` in the `[Advanced]`
section of the .ini file and it will select in the same fashion than
`BLCapButtons` but this time only for the top resizing border. Default
value is also 3 to prevent left and right button to trigger AltSnap in
the top resizing borders. `BLCapButtons` now concerns only the caption
buttons and no longer the top resizing border.
+ Now you can customize the action menu by adding or removing menu items
using the `ACMenuItems` option in the `[Advanced]` section of the .ini
file. Default value is -1 for all menu entry. #240
+ Updated German translation thanks to @Ichisich
* GUI: Now the `SnapGap` option is available through the GUI. #200
* Fixed #150: The top owner window is now used for the always on top
action. This avoids some parts of the program not being affected.
* Fixed #235: Inconsistent focusing of windows.
* Fixed #274: The window is now refocused when the action menu is canceled.
* Fixed: More reliable prevention of menu activation and/or start menu
popping up problems.
* Fixed: Window maximum and minimum sized would be ignored in center
resizing mode, leading to window running outside the screen when
resizing it beyond their maximum size.
* Fixed: Focus windows when dragging not working in some cases. #250
* Fixed: The titlebar Action menu not disappearing on defocusing in some
cases. #263.
* Fixed now if the owner window has an empty RECT it will no longer be
used to hold the topmost indicator (ie: ForceToolkit main window).
== AltSnap 1.54 ==
+ New: You can now set `UseZones=9` in the `[Zones]` section of the .ini
file and Windows will snap to the layout without having to press Shift.
Pressing shift or hitting space will disable zone-snapping instead. #219
+ Now if you use Zones, and disable the **Toggle maximize state with the
resize button while moving** advanced option, then Zone snapping will be
toggled by any secondary buttons, like with FancyZones. #219
+ New: Now you can set the opacity of the hollow rectangle (0-255) used
when the show window content while dragging option is disabled or when
FullWin=0. to do this you must modify the `TransWinOpacity` value in the
`[Performance]` section of the .ini file. #223
+ New now you can set the value of `BLCapButtons` in the `[Advanced]`
section of the .ini file to choose for each mouse button if the titlebar
action will be or not extended to the caption buttons and the top
resizing border. Use `BLCapButtons=0` if you want all buttons to
consider the extended caption and use -1 for none of them. The default
value is 3 to avoid the extended caption for the left and right mouse
buttons so that AltSnap avoids interaction with the minimize, maximize
and close caption buttons ([_] [O] [X]). If you are unsure stick to
the default value if you want less titlebar detection use -1. #236
* Now a checkmark in the action menu will indicate the always on top state
of the pointed window. Same for Maximized and Borderless flags (#184).
* Changed: Now when auto Snapping is enabled at the maximum level, then
pressing shift will disable snapping instead of doing nothing.
* Changed: Now several keys can be selected for the alternate action
ie: the `ModKey` value in the `[Input]` section is a key list and works
like the Hotkeys value. Same was applied to `HScrollKey`. (#207)
* Fixed: Now smarter areo-snapping will be properly re-enabled when you
release Shift. (#211)
* Fixed: Snapping to the layout will no longer ignore the Max snapping
speed option. (#218)
* Fixed multiple Action menu popping up in some cases. (#213)
* Fixed some stuck mouse buttons in some cases when using the Move
Windows with a long left click option.
* Fixed #220, Minic aero snapping is no longer necessary for Snapping
to the snap layout (Zones).
* Fixed: Modifying the config will no longer reset the `UseZones` value.
* Fixed #226, #229: Now the `DWMWA_CAPTION_BUTTON_BOUNDS` rectangle is
used to ensure that we are inside a titlebar and not caption buttons.
This fixes an annoying Windows 10 bug.
* Fixed, now the common french e dans l'o `` character is available in
the default extended character menu (LATIN SMALL/CAPITAL LIGATURE OE).
* Updated Chinese translation, thanks to @yatli.
== AltSnap 1.53 ==
* New: An extra key menu can now be enabled in the Keyboard tab of the
config and a popup menu with additional characters will show up when
you press a key from A-Z for a long time. This is similar to the way
Android and MacOS behave. The menu entry can be selected by pressing
the accelerator key (first column), or using the usual arrows/mouse.
The menu can be configured individually for each language (#181).
* New: Now any key can be mapped to mouse button 6-20, this is useful if
you have more than 5 mouse buttons and want to use your extra buttons with
AltSnap. You can first bind your extra mouse buttons to keys that you
would never use ie F13-F24, or some multimedia keys or even in some cases
to undefined virtual-keys codes, then add those virtual key codes in the
`XXButtons` key list (space separated hexadecimal values). Then those key
will be turned in MB6, 7, 8... events in the order of the list, finally
you can map an action to the corresponding mouse button, in the [input]
section of the .ini file. I advise to also add those buttons to the
`Hotclicks` key list. Finally keep in mind that any keys added to the
`XXButtons` list will be unusable outside of AltSnap.
Check issue #175 for the feature development and more tricks.
* New: the `Bottommost` list was added to the `[Blacklist]` section of the
ini file. When AltSnap lowers a window, it will try to keep it above all
those Bottommost windows. Default value is `*|RainmeterMeterWindow` for
the Rainmaker skin windows (fixes #189).
* New: You can now replace the all directions center resize mode by the
**Closest side** mode that picks the closest side resizing mode instead.
The test window will be updated accordingly (see issue #193).
* New: Now pressing Ctrl+N in a test window will open a New one.
* Fixed: Now maximizing a window with the Action without click option will
no longer prevent further movement.
* Fixed: The long click move option now works when left and right buttons
are swapped, it will also no longer interact with blacklisted windows.
* Fixed MDI ancestor detection to avoid AltSnap freezing on WinTabber.
* Fixed: `MinAlpha` and `AeroSpeedTau` being ignored (1.52 regression).
* Fixed: #183 Titlebar move action would not work properly when no primary
action was selected.
* Fixed: #179 Smarter aero snapping mode will always consider the current
window size/position and ignore the original AltSnapping.
* Fixed: Now it will remain possible to snap to windows that were made
borderless using AltSnap (partially fixes #185).
* Changed: minor code refactoring, inducing even more exe size reduction.
* Updated German translation thanks to @Ichisich, updated Korean translation
thanks to @1kko.
== AltSnap 1.52 ==
* New: Now a help message is added to the test window to indicate how to
setup snap layout (zones).
* Changed: some code refactoring and unification inducing size reduction.
* Fixed: Lag when dragging and resizing some programs (issue #160)
* Fixed: #172, drag was locked down when combining and action and hotclick.
Also, now if a hotclick is combined with the Move or Resize action then a
long click will be forwarded to the pointed program is no drag occurred.
This long click will not even be necessary if you enabled the
**Avoid blocking Alt+Click** option in the General tab of the config.
* Fixed: #124, A window will be restored to its original position when
using the Move+Resize click combo without a drag.
* Fixed: bugs in rolling and snapping code.
* Updated French and Italian translations
* Updated German translation, thanks to @Ichisich.
== AltSnap 1.51 ==
* Fixed regression that would make it impossible to select alternate action
for mouse button 4 and 5.
* Fixed: Now the LongClick Move will no longer trigger if the cursor is
pointing toward a system menu or a scroll bar or any of the caption
buttons [?][_][O][X], in the titlebar.
== AltSnap 1.50 ==
* New: Major changes in the title bar handling. A set of specific actions
can be configured for each mouse button to apply when clicking on the
title bar. Those actions can be configured to be used without pressing
the hotkey if you want. This replaces all special title bars options:
`LowerWithMMB`, `RollWithTBScroll`, `NormRestore`, `TitlebarMove`,
now removed. **CHECK YOUR CONFIG** when you install this update...
* New: Now, if you perform a long Alt+Click, the click will be forwarded
to the pointed program, simulating a normal Alt+Click. You can also check
the **Avoid blocking Alt+Click** option (General tab) and the Click will
always be redirected, this will also disable all double-click actions.
* New: A specific action can be configured when the Move or Resize action
is release without performing a drag, so for example you can set
`MoveUp=Minimize` in the `[Input]` section of the ini file and then
Alt+Move+drag will just move the window as normal, but Alt+Move+Release
will minimize the window. By default it needs to be a long click but if
you check the avoid blocking Alt+Click option then any click will work.
Same for the resize action using `ResizeUp` option. You also have the
Alternate versions for each one with the B sufix. Also if you Hold Ctrl
while releasing the click the action will not be performed.
* New: Now the Resize+Move click combo will snap the window to the
corresponding corner (similar to Move+Resize => Maximize).
* New: Mute sounds action to toggle mute state on Win2k+.
* New: Snap to side/corner action is available, and is equivalent to the
double-right-click aero-snapping.
* New: The `RezTimer` option was added to the `[Performance]` section of
the ini file and permits to move the cursor only at the default event
time resolution (every 16ms). It can be combined with FullWin=0 and is
very low on resources consumption. It is an advised mode if your monitor
refresh rate is only 60Hz. If the option is used then all the other
rates are ignored.
* French, Italian, translations are up to date and thanks to @1kko for
Korean Translation and thanks to @Ichisich for German translation
* Fixed: now the config dialog will show up in the corner your cursor is
when you click on the tray icon.
* Fixed: now the borderless action will save the old window style.
Also Windows that have been set borderless by AltSnap will still be
considered resizable.
* Fixed: Colors of the *Test Window* now depends on system colors.
* Fixed: Now the `RefreshRate` delay is almost millisecond accurate, it used
to be 16 ms accurate, rendering it useless on high-spec computers.
* Fixed: the show window content while dragging will no longer be ignored
on newer Windows versions. The `FullWin` option in the `[Performance]`
section of the .ini file can be set to 1: force on, 0: Force hollow,
and 2: Autodetect based on Windows setting.
The color of the hollow rectangle can be set in hex RGB via the
`FrameColor` option in the [Input] section, default is 80 00 80.
* Fixed: Alt+Shift will be blocked, by sending Ctrl, if an action occurred.
This avoids unwanted keymap changes.
* Fixed: Volume action now simply sends the multimedia key events.
It should work on Win2k+, and will show a visual indicator on Win10.
* Fixed: Sometime a maximized window could become impossible to restore
with AltSnap.
== AltSnap 1.49 ==
* New: New way of arranging your windows: Grid mode. It replaces the snap
layout with a simple grid than can be configured in the ini file. You can
Set `UseZones=3` in the [Zones] section of the .ini file to enable grid
mode then you can set the number of grid lines/columns using the
`GridNx/GridNy` options. Gor Grid mode I suggest to set UseZones=7 (3+4)
so that the window get extended without having to press Ctrl.
* New option to disable AltSnap on Maximized windows (advanced tab)
You can also use the `BLMaximized` option in the .ini file.
* New: AltSnap can now be activated with a long mouse click, check the
corresponding option at the bottom of the Mouse tab. Default long click
delay is the system double-click delay, it can also be manually set via
the `LongClickMove` option in the ini file. Only the left click for
movement is supported, it was suggested by @actforjason.
* GUI: `Smarter Aero Snap dimensions` and `Never restore AltSnapped windows`
options were added to the GUI so they can be configured easily.
* Fix: When using the Kill Action on a suspended window, AltSnap will send
the WM_CLOSE message and the terminate confirmation should appear. For now
it is impossible to really kill the process via AltSnap because its
window is Ghosted as soon as windows detects the process is hung.
* Fix: Never restore AltSnapped windows option can be combined with Smart
aero snap dimensions, and perform properly (#133)
* Fix: Now all keys from A-Z are in the Killkeys list to avoid interaction
with system shortcuts that might put AltSnap in an inconsistent state
ie: Win+L, Win+V...
* Fix: The Close Action now behaves correctly on Excel.
* Fix: Maximum number of zones in the snap layout was raised to 2048.
* Updated German and Chinese translations.
== AltSnap 1.48 ==
* New action: Minimize all other windows, similar to aero-shake, but available
as a mouse action, and in the action menu.
* New: Now when using the **Lower windows by middle-clicking on title bars**
option Ctrl+Middle-click in the title bar will toggle the Always on top
state and so will Middle-click on the Min/Max/Close buttons.
* New: `SnapGap` value can be set into the `[Advanced]` section of the ini
file and will set an additional gap between snapped windows/monitor sides.
You can put a negative value if you want an overlap. Default is 0
* New: `Shiftkeys` keys list was added in the [input section of the ini file,
to setup another key instead of the Shift key. The default is `A0 A1`,
for left and right shift but this is now a customizable key list.
* New: `ShiftSnaps` option was added in the `[Advanced]` section of the ini
in order to enable/disable the border-border snapping activation with the
shift key (default is 1).
* Fixed: Now when resizing several windows at the same time the DeferPos
windows functions are used to minimize flicker.
* Fixed: Now when disabling window to window snapping with space while
dragging, the smart window snapping will also be disabled.
* Fixed AltSnap would block Alt+Space if no drag occurred, this was a problem
when using **Action without click**.
* Fixed: smart aero-snapping only taking into account windows snapped on the
other side of the monitor.
* Fixed: non-resizable windows will longer be maximized with right click
while moving.
* Fixed Maximize Vertically action that would erase the old restore state.
* Fixed some crash when launching again AltSnap with a previous instance.
* Fixed Tray icon handling under Win10.
* Changed: Now when the space key is pressed for a movement the snap sate
will be toggled between no snapping and all border-borders snapping.
== AltSnap 1.47 ==
* Project was renamed from **AltDrag** to **AltSnap** to avoid conflict with
Original AltDrag from Stefan Sundin. Old choco package will no longer be
updated and will be given back as soon as Stefan asks for it.
I advise to all users to uninstall AltDrag and install AltSnap.
* New: Support of Snap Layouts, also called Zones. All associated settings
are in the `[Zones]` section of the .ini file **Read carefully:**
1) Check the **Snap to layout** option (`UseZones=1` in the .ini).
2) Configure your layout by opening several *Test Windows* from the tray.
3) Arrange those windows across all of your monitors as you you wish.
4) Go again to the tray menu and hit **Save test windows as snap layout**
5) A confirmation dialog will ask you if you want to save, hit yes.
Now you will be able using the Shift key to sanp the window you move to the
pointed zone, Add the Ctrl key and drag the cursor to extend the windows
across several zones. If the cursor is close from two or more zones then
the window will also be extended to several zones. Use the `InterZone`
value to adjust this threshold distance in pixels (default 32).
* New: Added the **Restore FancyZones snapped windows** option in the
Advanced tab and `FancyZone` option in the `[Zones]` section of the ini.
set it to 1 if you want AltSnap to be able to restore windows that were
snapped using PowerToys' FancyZones. This only applies to x86_64 builds
of AltSnap. I highly recommend this to FancyZones users.
* New added a `AResize` whitelist in the `[Blacklist]` section of the .ini
file in order to force altdrag to resize windows that do not have the
`WS_THICKFRAME` style, when the Resize all windows option is disabled.
* New: Added the option to move windows via AltDrag without hotkey,
by clickling on the titlebar. It is similar to the **hooks windows**
feature that was present in the original AltDrag and can be activated
via the `TitlebarMove` option in the `[Advanced]` section of the .ini.
* New: Now a **modifier key** can be set instead of the invert Move/resize
key in order to use an lternatye set of customizable actions for all
buttons. They can be configured in the Mouse tab of the config dialog,
or manually in the .ini, using a B sufix for buttons eg LMBB=Resize.
* New: Maximize Vertically action, use Shift to maximize horizontally.
* Changed default `RefreshRate` to 0 to favor smoothest movement instead
of performances also default is now `MoveRate=1` and `ResizeRate=2`.
* Restore informations for snapped windows are now stored in Windows
properties. This simplifies the code, and allows altdrag to be restarted
without loosing restore info, also restore informations become shared
between different AltSnap instances.
* Updated to tdm-gcc-10.3 for i386 and x86_64 builds with one compiler.
* Updated Chinese translation by *Yatao Li* (zh_CN.ini).
* Updated German translation by *Ichisich* (de_DE.ini).
* Fixed: Sometime the mouseup would triger a menu after an action.
* Fixed: potential crash using the config pannel.
* Fixed: display maximize/restore animations when using the maximize action
* Fixed: avoid to play the minimize/restore animations when unrolling
a maximized-rolled window.
* Fixed: Now cloacked windows will no longer be snapped to, this also
prevents windows from snapping to others through different virtual
desktops under Win10.
* Fixed: When disabling the "Resize all windows" option, then windows would
no longer snap properly, even if they were resizeable.
== AltDrag 1.46 ==
* Fix -elevate command line parameter being ignored. this also fixes the
**Elevate to administrator priviledge** option for autostart.
* Fix major bug: AltDrag would capture the wheel input when Alt Was pressed
even if `Nothing` was selected as wheel action.
* Minor code tuneup
== AltDrag 1.45 ==
+ New: Now the `ScrollLockState` option in the [Input] section of the ini
file can be set to 3 to enable AltDrag only when Scroll Lock is off.
* Fixed: Now the `SWP_NOSIZE` and flag is used when simply moving a window.
This prevents rolled windows from partially unrolling. Also the
SWP_ASYNCWINDOWPOS flag was added where applicable and this fixes
an ugly Win 10 bug that would changes the borders of some moved window.
* Fixed: When using maximizing a window by snapping to the top,
it would sometime prevent further movement when FullWin=0.
* Fixed a last minute bug introduced in 1.44 that would restore rolled
windows as soon as you moved them.
* Fixed: Now when AltDrag is suspended with the Scroll lock state option,
The notification icon will change.
* Fixed some stuck alt bugs thanks to **scx**.
== AltDrag 1.44 ==
+ **Smart aero dimensions** was added in the General Tab of the config.
With this option checked (default) AltDrag will adjust the dimensions of
the snapped window to the other snapped windows that were resized.
Also snapped windows will still be restored by the move action even after
having been resized. This was suggested by *KoleckOLP*. MDI also work.
+ New important feature: The **Resize other snapped windows with Shift**
option was added in the General tab of the config. If it is checked, then
any window snapped or touching to sides of the currently resized window
will be resized to remain stuck to the current window when you press the
Shift key. If you want to always resize the touching windows, then you
can manually set StickyResizing=2 in the [General] tab in AltDrag.ini.
In this case, pressing shift will prevent the "sticky resizing".
MDI windows are also supported.
+ New setting to enable/disable AltDrag based on **Scroll Lock** state.
see in the Keyboard Tab.
+ Now an action can be selected for both scroll wheels independently.
+ New action for scroll wheel: Horizontal scroll.
+ New now the '*' joker can be used at the end of the class or at the
beginning of the title, in the form: `*end of title|class start*`
Example: `*|Winamp*`. This may be useful to make better rules.
Note that the processes blacklists are not concerned by this.
+ New: If the first element of a blacklist is *|*, then all windows that
are not listed will be considered as part of the blacklist. This turns
the blacklist into a whitelist ie: list of windows for which AltDrag
will be enabled. It can be useful if you only want to use AltDrag on
very few programs, then you just enable it on those programs.
Both title|class and processes.exe styles are supported.
Exemple: `Processes=*|*, explorer.exe, notepad.exe` will enable AltDrag
only on the explorer and the notepad windows.
+ New setting: UseCursor=4 in the [Advanced] section of AltDrag.ini,
in order to use the ResizeAll cursor for movement instead of the Hand.
+ New: Now more info are displayed in the Identify window section in the
options to help debugging.
+ New: Now the key used to transform scroll in Horizontal scroll can be
chosen using the `HScrollKey` option in the `[Input]` section of
AltDrag.ini. Default is 10, you can set an empty value to remove the
ability of scrolling modification. Note that It only applies when the
**Scroll inactive windows** option is checked.
* Fixed: When snapping to the top of the monitor in maximize mode, dragging
the window to a corner would make a maximize-resized window instead of a
snapped window.
* Fixed: now the snapping region when using Mimic Aero snap option will no
longer extend beyond aero-threshold distance in the corners.
* Fixed: the **Lower windows with middle clicking on title bars** as well
as the **Roll/Unroll windows with Alt+Scroll on title bars** now work
better and lets user closes the tabs on Sumatra PDF with middle click.
The options also apply properly to MDI windows now.
* Fixed: now the center action will no longer apply to Maximized windows.
* Fixed Process blacklist not working on Windows 8.1
* Fixed: the cursor at the End of a movement would force the repaint of
a 256x256 pixels around it. This is no longer the case.
* Fixed: Hotkeys list would not be read properly sometime.
* Fixed: Now windows focusing will work properly inside MDI windows.
Also advanced mouse actions now work properly inside MDI.
* Fixed: now the MMBLower blacklist will only apply to the middle-click in
the title bar and the normal restore option.
* Maximized-rolled window will now be restored to the pre-maximized state.
Rolled-maximized-rolled-unrolled windows, will be restored to the first
rolled state with the memory of the rolled state, as expected.
* Now the config dialog box no longer instantly applies the settings.
This simplifies the code and is more desirable in my opinion. You now
need to click OK or Apply in order to apply the settings. This also
avoids useless confusion when compared to a normal property sheet.