Commit graph

86 commits

Author SHA1 Message Date
Kang Yu
de9654707a 1. Force restore in case OS does not generate display changed event
2. Different restore event handling for password protected session and no-password session
2020-03-19 21:44:15 -07:00
Kang Yu
d55dd26ca9 fix invalid time issue when selecting restore menu 2020-03-18 12:03:58 -07:00
Kang Yu
72a533b507 fix issue 11 caused by rolling window position back to incorrect cutoff time 2020-03-18 11:58:53 -07:00
Kang Yu
2525ab2882 restore window position reliably by applying cutoff time on capture history queue 2020-03-15 15:01:05 -07:00
Kang Yu
585dd399b8 record time together with window pos to help restore 2020-03-14 20:44:22 -07:00
Kang Yu
dbf0e782fc add Capture and Restore menu item to allow manual operation 2020-03-14 18:27:45 -07:00
Kang Yu
e68e0184aa restore taskbar position 2020-03-14 17:47:34 -07:00
Kang Yu
1dc841d783 refactor move taskbar function 2020-03-14 16:20:40 -07:00
Kang Yu
7cf8a152fc experiment to move taskbar 2020-03-10 16:16:51 -07:00
Kang Yu
523d4ba0e3 disable timer based capture when closing session event is detected 2020-03-02 22:59:24 -08:00
Kang Yu
bd7baab613 only capture window moves that are missed by event handler 2020-03-01 19:15:12 -08:00
Kang Yu
43781dcb5e identify OS move by using counter; Capture user snap window using timer 2020-03-01 19:15:11 -08:00
Kang Yu
aa8b478eda capture user move window action instantly with precision without using delay timer 2020-03-01 19:15:11 -08:00
Kang Yu
29f24db354 reduce number of restore effort to speed up recovery 2020-03-01 19:15:11 -08:00
Kang Yu
528d1e783d fix issue 9. capture taskbar window 2020-03-01 19:15:10 -08:00
Kang Yu
d4bf4a0b3a safe lock against re-entry of restore routine 2020-03-01 19:15:10 -08:00
Kang Yu
b3acca721f avoid excessive restore cycle 2020-03-01 19:15:09 -08:00
Kang Yu
d90829735d do fixed delay restore followed by window move event driven restore, to improve the chance of successful restore 2020-03-01 19:15:09 -08:00
Kang Yu
e3a0ddfacd adjust max latency for capture to fix miscapture due to slow RDP recovery 2020-03-01 19:15:09 -08:00
Kang Yu
dd3bb5c494 force restore window multiple times in case Windows OS fail to send notification message 2020-02-27 10:34:15 -08:00
Kang Yu
054565778a do not recapture window when restore period is finished, because there is a small chance that OS incorrectly placed window. In that case, user still has a chance to restore by doing another round of sleep/awake 2020-02-26 19:41:57 -08:00
Kang Yu
0ad030a7aa resolve risk condition due to multi-thread 2020-02-23 22:19:53 -08:00
Kang Yu
e3a3cc1706 factor ResetState() 2020-02-23 20:09:39 -08:00
Kang Yu
aecc9f6e29 adjust restore try times for local/remote session with different value 2020-02-23 18:03:16 -08:00
Kang Yu
69a9b4f273 allow early abortion of restore when user actively move/min/max/restore window (excluding trivial activate or create new window) 2020-02-23 15:18:25 -08:00
Kang Yu
ebadd17d07 reliably restore window position for at most 6 passes upon display change 2020-02-23 11:37:20 -08:00
Kang Yu
7eb54d135a extend restoreWindowPos active period by 500ms to detect OS move 2020-02-22 14:47:20 -08:00
Kang Yu
060e1f67e1 reduce window flickering by avoid unnecessary SetWindowPlacement() call. Revert complicated SetWindowPos() call to simple MoveWindow() call 2020-02-22 12:43:06 -08:00
Kang Yu
11cd6f568d automatically fix small negative y screen coordinate to avoid repeated recovery 2020-02-22 12:01:00 -08:00
Kang Yu
3056a1bbec capitalize constant names 2020-02-19 10:55:02 -08:00
Kang Yu
0dd37cf785 Fix flickering window loop issue in V3.0 and V3.1
Restore window z order
Restore maximized window indicator
2020-02-18 14:32:02 -08:00
Kang Yu
8faa833fbe fix miss capture of new window 2020-02-17 22:51:41 -08:00
Kang Yu
c430ea7d3e avoid excessive capture during restore 2020-02-17 21:21:21 -08:00
Kang Yu
b1d6ecb04e Measure window move speed to recognize OS initiated move.
Replace MoveWindow() with SetWindowPos() to preserve window depth
2020-02-17 17:16:11 -08:00
Kang Yu
02de0b3216 fine tune timer latency for slow remote desktop connection 2020-02-16 23:06:11 -08:00
Kang Yu
505d6d9126 Avoid capture when display setting changes before event handler is called
Distinguish user initiated move/resize from OS initiated move/resize
Introduce load-adaptive capture speed control for slow remote desktop connection
2020-02-16 22:27:03 -08:00
Kang Yu
a134d2f337 adjust timer latency so that capture takes longer than recovery, this is required for second recovery pass 2020-02-14 18:21:25 -08:00
Kang Yu
1e04039dd2 implement second restore pass in a more elegant way 2020-02-14 15:43:54 -08:00
Kang Yu
4a25903024 Improve capture/restore accuracy using timer and event handler 2020-02-14 15:41:21 -08:00
Kang Yu
4f6eb079e1 avoid conversion between User32Events and uint 2020-02-11 23:45:06 -08:00
Kang Yu
fadf717d24 clean up unused code 2020-02-11 23:18:48 -08:00
Kang Yu
9a301996c2 Reimplement capture/restore using event handler 2020-02-11 23:12:22 -08:00
Kang Yu
f9ccb9e4ed Turn on pure event driven window capture to fix miscatpture issues.
Turn on system suspend event handler to avoid miscapture.
2020-02-10 23:45:27 -08:00
Kang Yu
636ff55291 merge event driven handler code from WindowMagic to reduce cpu usage due to polling 2020-02-08 21:56:46 -08:00
Kang Yu
4ce4f53941 disable event-driven window movement detection due to insufficient capability. Re-enable polling method with thread safety enhancement 2020-02-06 19:20:21 -08:00
Kang Yu
55851c6847 merge from WindowMagic by Sean Aitken:
1. use event driven detection instead of polling
2. add Dispose() method to free resources
2020-02-06 19:20:21 -08:00
Kang Yu
36182585a4 tentative fix to improve reliability, avoid risk condition or potential crash 2020-02-05 22:09:18 -08:00
Kang Yu
89afcad35a remove x64 build option 2020-02-03 18:14:40 -08:00
Kang Yu
7170ad0698 update comment 2020-02-03 16:58:13 -08:00
Kang Yu
a7b15a0f22 fix flickering window issue introduced in V2.6, try recover old WindowPlacement only once 2020-01-31 16:26:17 -08:00