Commit Graph

39 Commits

Author SHA1 Message Date
Enrico Giordani
f9a5242e75
[FancyZones] draw active zones on top of inactive zones (#4727) 2020-07-03 17:04:52 +02:00
Yevhenii Holovachov
8410d7b08e
[FancyZones] Secondary mouse buttons click to toggle zones activation (#3989)
* Changed option name in settings, changed behaviour of zones activation by mouse to switch
* Removed IsDragEnabled from ZoneWindow
2020-06-05 17:53:08 +03:00
Ivan Stošić
8d2256d359
Removed the stampZone argument (#3852) 2020-06-01 16:14:29 +02:00
vldmr11080
2216cda2f1
[FancyZones] Improve monitor work area handling (#3418)
* Initial design for improving handling of different engaged work areas in fancyzones.

* Remove active device id check in ZoneWindow.

* Remove concept of active device identifier in JSONHelpers.

* Refactor interface description and add new method.

* Simplify ZoneWindow initialization.

* Default value for active ZoneWindow during move/size.

* Add newline at the end of file.

* Use COM pointers for ZoneWindow instead of passing raw ptr.

* Solve few issues after merging with master.

* Fix typo in documentation.
2020-05-31 12:36:45 +02:00
Josh Soref
ecb5d2ae1c
Spelling: ... fancyzones (#3777)
* spelling: defined

* spelling: excluded

* spelling: guid

* spelling: highlight

* spelling: original

* spelling: nonexistent
2020-05-27 16:55:46 +02:00
Ivan Stošić
6f22c7ad19
[FancyZones] Added persistence to app zone history (#3132)
* Persist app zone history in a separate file

* Almost ready to be functionally tested

* Now all unit tests pass

* Bug fixes, it seems to work

* Various fixups

* Improved performance of FancyZones::UpdateWindowsPositions()
2020-05-26 16:01:12 +02:00
vldmr11080
1792849b98
Expose InMoveSize from WindowMoveHandler. (#3525) 2020-05-22 16:42:29 +02:00
Ivan Stošić
e249bc5856
[FancyZones] Fix a regression with Chrome tabs jamming FZ (#3338) 2020-05-20 18:52:48 +02:00
vldmr11080
56c0a78c64
[FancyZones] Only process windows located on currently active work area when moving them (#2691)
* Only process windows located on currently active work area when moving them.

* Move all editor exit handling into dedicated method.
2020-05-06 17:16:16 +02:00
Andrey Nekrasov
8c4dbbfbec
FZ: run AnimateWindow and InvalidateRect in a dedicated thread (#2582) 2020-05-01 17:14:35 +03:00
vldmr11080
648f3abcbd
Handle scenario with only primary desktop and no desktop switch in current session. (#2339)
* Handle scenario with only primary desktop and no desktop swithc in current session.

* Add scoped lock when changing current desktop id. Address PR comments.

* Explain purpose of UpdatePrimaryDesktopData method.

* Fix typo in documentation.
2020-04-30 11:16:25 +02:00
yuyoyuppe
bb82a9bcf4 FZ: remove RestoreOrginalTransparency() from ZoneWindow::~ZoneWindow() and from ZoneWindow::MoveSizeEnter() 2020-04-28 15:17:20 +03:00
yuyoyuppe
df61ea0a62 Revert "Added a mutex to ZoneWindow, ensured no data races occur (#2154)"
This reverts commit af4678ff18.
2020-04-28 15:17:20 +03:00
Ivan Stošić
af4678ff18
Added a mutex to ZoneWindow, ensured no data races occur (#2154)
* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction
2020-04-20 16:32:49 +02:00
stefansjfw
f589dd2f26
Only clone layout from parent desktop when creating new virtual desktop (#1904)
* Fix issue #1343

* Add Unit Tests

* Revert non intended rename

* Address PR comments
2020-04-10 16:29:18 +02:00
Ivan Stošić
629ba763d7
Basic support for snapping to multiple zones (#1955)
* Refactor a method which resizes windows

* Completed initial work for MultiZones

Without changing any test, they all pass!

* Implemented a basic version of Multizones, updated some tests

* Reduced the sensitivity radius

* Added a few must-have unit tests for Multizones

* Some fixups

* Took care of the conflict between this and #1938

* Improved how zones are detected, reverted a change in one unit test

* Resolved another merge conflict

* Fixed bugs related to stamping
2020-04-10 16:09:08 +02:00
Seraphima Zykova
efb86f453c
Draw border inside zone (#2000) 2020-04-08 16:59:17 +03:00
PrzemyslawTusinski
2806c386d3
fancyzones unity3d crash fix (#1914)
* fancyzones unity3d crash fix

* intelisence warning fix, and review issue fix

* Fix for review comment
2020-04-03 11:17:12 -07:00
Andrey Nekrasov
d2a60c7287
FZ: disable flash zones option for 0.16 (#1721)
* FZ: disable flash zones option for 0.16

* fixup! review comments
2020-03-27 13:24:27 +03:00
PrzemyslawTusinski
f8f7fe4f33
Fancy zones ui update( zone numbering as numbers, dragged window transaprency option, zone coloring customization) (#1666)
* Fancy zones ui update (#4)

* Draft of numeric fancyzones with numbers

* Added support for zone color configuration, improved zone number display

* Changed order of settings to more logical

* Added option to edit zone border color

* Trancparency of dragged window, transparency of displayed zones, changed font of zone numbers

* Fix for compilation

* Some refactor

* Introduced gdiplus to draw zone and zone index

* Fix for dissappering windows

* Some fixes

* another merge fix

* another merge fix

* Unit test merge fix

* Transparency with show zones on all fix

* indentation fix

* Fix for failing test

* Changed order of color pickers

* "Zone Opacity"

* Zone opacity (%)

* Added option to turn off dragged window transparency, changed default zones color values
2020-03-25 15:38:44 +01:00
vldmr11080
9e8facaa6f
Windows snap hotkeys to move windows between screens (#1603)
* When moving window into zones using arrow keys, support multi-monitor scenario

* Minor coding style adjustments

* Split implementation into separate functions because of readability

* Rename certain arguments

* Modify unit tests after API changes

* Address PR comments and add unit tests

* Return true from MoveWindowIntoZoneByDirection only if window is successfully added to new zone

* Improved monitor ordering (#1)

* Implemented improved monitor ordering v1

* Fixed some embarrassing bugs, added some tests

* Added one more test

* Extracted a value to a variable

* ASCII art in unit test comments describing monitor layouts

* Removed empty line for consistency

* Update comment to match the code

* Refactored tests, added tests for X,Y offsets

Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-03-24 18:50:26 +01:00
PrzemyslawTusinski
0af6348913
Fancy zones: show active layouts on all monitors (#1553)
Added option to show fancy zones on all monitors with layouts simultaneously
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-03-13 15:56:23 +01:00
stefansjfw
7ac378dcd3
Fix compiler warning (#1492) 2020-03-09 23:21:33 +01:00
vldmr11080
7653d5fec9
Document fancy zones (#1496) 2020-03-09 19:22:53 +01:00
Andrey Nekrasov
1e6936a8c3
Thread safety for FanncyZonesData (#1281)
* FancyZones: make FancyZonesData thread-safe

* fixup: format affected sources

* fixup: clang-format case-style and format FancyZones.cpp

* fixup! add missing lock
2020-02-17 18:28:49 +03:00
stefansjfw
53f830bb38
Migrate FancyZones data persisting from Registry to JSON file (#1194)
* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
2020-02-10 14:59:51 +01:00
vldmr11080
5dc60b9f35
Fix reversed order of zones in layout (#1071) 2020-01-15 20:20:10 +01:00
Yosef Durr
a2a683d31e adding fancy zone opacity setting, enhancement #631 (#1008)
* adding fancy zone opacity setting, enhancement #631

* applying zone opacity setting to all zones during zone selection

* changing opacity setting to percentage
2020-01-06 09:59:18 -08:00
yuyoyuppe
303d1fef6b
PCH: remove headers which are actually could be changed (#950) 2019-12-17 11:21:46 +03:00
vldmr11080
014c2c5249 Use same zone set initially for new virtual desktops of same monitor (#815) 2019-12-06 15:09:27 +01:00
vldmr11080
57845a2739 Don't flash current zone setup when focused window is in full screen (#796) 2019-11-30 14:38:27 +01:00
Bret
28d7835327
User/bretan/fz remove legacy editor (#1)
* Removed and runs
Still needs some extra cleanup and addressing open issues

* Removed and runs
Still needs some extra cleanup and addressing open issues

* Clean

* Update
2019-11-18 15:29:42 -08:00
yuyoyuppe
f3e25ae3e6
Fix for different per-monitor scaling (#657)
* Use DPIAware::DEFAULT_DPI

* Make runner DPI-unaware, since it doesn't need to use a Per Monitor V2 DPI.

* Programmatically enable "Per Monitor V2 DPI" for the runner proccess and use a separate DPI-unaware thread for the corresponding API calls

* Increase PCH memory limit for settings project

* Address review issues

* Draw zoneWindows properly scaled
2019-11-07 21:56:32 +03:00
yuyoyuppe
a9518c2e55 Wrap around colorIndex in a colors array (#669) 2019-11-07 17:50:04 +01:00
Bartosz Sosnowski
41842048a3 Save the zone when window is moved by hotkeys 2019-10-16 10:23:22 +02:00
Bartosz Sosnowski
5f8c4ea143
Improve window filter to include start menu and Cortana search box. (#474)
Also moves GetProcessPath* functions to common, renaming both to
get_process_path.
2019-10-07 11:12:44 +02:00
Bartosz Sosnowski
0b86941a3b Make FancyZone distinguish different modern apps. 2019-09-26 08:54:00 +02:00
Bret Anderson
c0cdf7aaa6 Everything is working. 2019-09-15 13:34:00 -07:00
Bartosz Sosnowski
8431b80e48 FancyZones and Shortcut Guide initial commit
Co-authored-by: Alexis Campailla <alexis@janeasystems.com>
Co-authored-by: Bret Anderson <bretan@microsoft.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Jeff Bogdan <jeffbog@microsoft.com>
Co-authored-by: March Rogers <marchr@microsoft.com>
Co-authored-by: Mike Harsh <mharsh@microsoft.com>
Co-authored-by: Nachum Bundak <Nachum.Bundak@microsoft.com>
Co-authored-by: Oliver Jones <ojones@microsoft.com>
Co-authored-by: Patrick Little <plittle@microsoft.com>
2019-09-05 18:12:40 +02:00