* Align zone numbers between Editor and FancyZonesLib
Use zoneId on win+arrow
* Update tests
* Fix crash
* ZoneId starts from 0
* Define ZonesMap type
IFACEMETHOD_ macro is having trouble processing
std::map template when expanding, so return type needs
to be predefined
* Address PR comment
* Address more PR comments
* Handle .at
* Add the setting for the Sensitivity Radius to JSON and the Editor
Use the setting when determining Zones to highligh
* Fix FanzyZones unit tests
Add test for Json upgrade
* Updated texts in FancyZone Editor
More Text to Resources / Use Resources
* Added constant for default of Sensitivity Radius
* When installing from scratch of when a new device is added set the sensitivity radius to the default.
Move all the constant values to a single namespace
* restore correct formatting
Co-authored-by: Remy Blok <remy.blok@prodware.nl>
* Added an Alt key hook
* Refactor a block of code into a method
* Again refactored existing code
* Apparently Win+Alt does not reach FancyZones
* Using Ctrl+alt instead of Win+alt for now
* It works
* Fixed VD change
* Remove unused member
* Fix compilation error
* Enable shrinking
* Fixed comments in .h files
* Remove newline
* Refactored a function into two
The next task is to simplify their code.
* Updated a comment
* Update a variable name
* Reverted to the old implementation of directional move
* More refactoring
* Remove space
* Fixed windows getting stuck
* Changed function name
* Added the setting
* Refactored existing code, the main feature isn't implemented yet
* Renamed a method
* Updated a comment in IZoneWindow
* Added the zone selection algorithm, didn't test it
* Basic features work
* Single monitor cycling works
* Seems that the feature works well
* Polished the settings page
* Rebase fix
* Fixed a null pointer dereference
* Use classic if syntax
* Fixed bad indentation
How did these lines unindent themselves?
* Removed TODO comment
* Rebase fix
* Another rebase fix
* Added the setting
* Added a property to Editor Settings
This will be used later
* Fixed a bug in the previous commit
* Simplified a method
* Added snapping points to the editor
* Simplified a method in ZoneSet
* Updated ZoneSet testcases
* Add a method to FancyZones / ZoneWindowHost
* Almost works
* The editor now launches, but FZ does not understand the results
* Refactored some code
* Snapping to a zone by dragging seems to work
* Hotkeys seem to work
* Refresh the work area handler after changing settings
* Fixed zones not snapping to monitor edges when moved
* Remove unused method in FancyZones.h
* Fixed an issue with DPI awareness
* Renamed setting to spanZonesAcrossMonitors
* Renamed a function
* Fixed a bug with the magnetic effect
* Fix restoring window positions on layout changes
* 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()
* 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
* 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>
* 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>
* 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
* 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
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>