* bugreport: move to tools
* bugreport: skip packaging installers, format time with seconds, remove monitor-info-report tool
* bugreport: move BugReportTool to Tools folder
* fix CI
* fix CDPX
* added diagnostic tool project
* Add copy to a temp folder, escape private info and zip it
* Added diagnostic tool to installer
* zip folder path as cmd argument
* renamed project to BugReportTool
* do not use precompile headers for release
* Added zip lib
* Added license
* Delete old zip source files
* Use fork version while PR is not merged
* fix spelling
* exclude deps folder from spell checking
* exclude only zip
* removed redundant configuration from zip project
* fix spelling
* Add error handling to implementation
* Added build of BugReportTool.sln to pipeline
* Delete redundant info from BugReportTool.vcxproj
* Deleted submodule
* Added submodule
* fix build
* Restore nuget packages for BugReportTool.sln on CI
* spelling fix
* Use SettingsAPI
* changed git submodule
* added new sensitive info
* Removed zip project
* use json.h, add date to zipfolder, handle zip is not created
* fix spelling
* delete bad_alloc catch
* add new sensative info
* report monitor info
* report windows version
* fix spelling
* delete platform specific configuration
* fix output
* Don't capture Win+Arrows if there's no zone layout
* Reuse a variable instead of calling
* Renamed a Windows event
* Add an underscore to fix misspelling
* Implement File Watcher in FancyZones
* Simplify code, address PR comments
* Add check to result of CreateEventW
* Rebase fix
Removed unneeded newline. If we keep it now, VS will just remove it some other time.
* Move retrieveing file attibutes to PowerRenameRegex
Move file attributes unit tests to PowerRenameRegexTests
Add file time field to MockPowerRenameItem
* Add file attributes unittests to PowerRenameManagerTests
* Change variable name
* Rearrange function arguments
* Check if file attributes are used only once
* Change variable name LocalTime -> fileTime, date -> time
* Set fileTime as a member of PowerRenameRegEx rather than passing as an argument
* Change function name isFileAttributesUsed() -> isFileTimeUsed()
Check before resetting fileTime
* Fix small bugs
* Fix typos
* Refactor for readability, move free calls to reachable places
* Fix search for area empty bug
searchTerm being empty is not an invalid argument rather it must return OK without any operation
Tests must check if Replace() returns S_OK becuase later it checks its result
* Check return values of method calls in PowerRenameManager
Remove received argments checks from some methods because argument being null or empty string doesnt mean it is invalid or method fails
* Fix formatting. Remove overlooked comment. Fix error message.
* Change HRESULT declarations according to coding style
* Fix unhandled case. Refactor.
* Converted to SDK Style project and upgraded to .NET Core 3.1
* Cleaned up formatting
* Swapped System.Windows.Interactivity.Wpf for Microsoft.Xaml.Behaviors.Wpf
* More replacements to Xaml Behaviors
* No need for App.config
* Profile file cleanup. Added System.Drawing.Common package
* Moved entry point to a new Program.cs
* Set StartupObject to ColorPicker.Program
* Renamed assembly to ColorPickerUI to resolve conflict with module
* Added proper output path
* Updated list of files needed for installer
* Added InvariantCulture string comparion for ColorToHex.
Updated pipeline.user.windows.yml
* migrate Microsoft.Interop.Tests to target .NET Core 3.1
* put the stylecop nuget and stylecop.json
* refactor Microsoft.Interop.Tests.csproj to have x64 platform target
* Update build-powertoys-steps.yml
Getting interop tests actually on CI
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Fixing issue when color picker was frozen because other application was locking clipboard
* Fixed another issue where holding activation keys constantly would trigger show color picker numberous times and it would cause some events to be attached multiple times
* Initial Port of Wox.Plugin.Sys
* Add Unit Tests for Microsoft.Plugin.Sys
* Modified Microsoft.Plugin.Sys.UnitTests Properties
* Microsoft.Plugin.Sys x64 Launch
* Fix Styling for Microsoft.Plugin.Sys.UnitTests
* Fixed Misspelling
* Remove Any CPU from Configuration Manager
* Removed Old Icons and Added New Images
* Updated Titles for Localization and Added & Updated Light/Dark Theme Icons
* Added Light/Dark Icon Theme Unit Tests
* Updated QueryTest Expected Results for Microsoft.Plugin.Sys.UnitTests
* Added Spell-Check Expects for Microsoft.Plugin.Sys
* Updated Spell-Check Expects for Microsoft.Plugin.Sys
* Corrected Format in Microsoft.Plugin.Sys
* Corrected Descriptions and Added Comments for Localization
* Added StyleCop and Version Props
* Corrected Format of Microsoft.Plugin.Sys.Main
* Updated Unit Tests for Microsoft.Plugin.Sys
* Updated Spell-Check Expects for Microsoft.Plugin.Sys
* fixing build issue
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Ground base for WPF version of V2 color picker
* Added theming support
* Layout fixes, added UWP listview styling
* Updated UI
* Added theming and Fluent to colorpicker. Styles cleanup
* Added animation for "color copied" message
* Added color format control, testing transparency
* Added roll-over behaviour, selectable textbox and right-click context menu
* Revert "Added roll-over behaviour, selectable textbox and right-click context menu"
This reverts commit af35a23532.
* Delete context menu, mouse-over clipboard button and selectable text
* Implemented remove color command, set color editor topmost
* Missed some changes
* Added all currently supported color formats into editor, added support for future custom formats
* Added missed file
* Reverted WindowStyle = None
* Added drag and drop reorder behavior for color formats
* Removed custom close button, UI cleanup, added scrollviewer to colorformats
* Added close button
* Added color picker color control to configure current color
* Added possibility to add and remove color representations, commented out drag&drop reorder behavior
* Calculate color variations of the current color, on click adds a new color into the history
* Fixed reopening of editor, added rgb textboxes into color picker control, moved add color formats button at bottom
* Improved color schemes, similiar to Windows 10X
* Updated icon, window name and XAML cleanup
* Moved strings to Resources file
* Added Narrator support
* Accesibility stuff
* Revamped color picker color - now 3 sliders to configure color - hue, saturation, value, added bidirectional of setting values HEX/RGB/Sliders, validation of rgb and hex input
* UX improvements
* Removed color format management
* Removed colorformat hide context menu
* Improved colorpicker UI
* Added colorformats XAML to Settings
* Reverted runner change
* Margin fix
* Updated height of colorpicking tooltip
* Using dynamic width for color picker based on a content
* Fixed build
* Added H,S,V labels in front of gradient sliders in color picker control
* Color shades borders are now buttons, improved narrator support
* Added tabindexes
* Accesiblity improvements
* UI bugfix
* Fixed issue with occasional issue with saving color/removing colors due to locked settings file, decreased number of writes into settings.json, fixed throuttledActionInvoker to run only once, added rangeobservablecollection data type to be able to control notifications in observablecollection
* Updated installer with newly added libs
* Hide settings button since required functionality is not available yet
* Added comments to resource file
* Added reorder and enable/disable color formats from settings,
* Show message when colors history empty, open color editor in the center of screen
* Styling updates to now color selected popup
* Added horizontal gripper icon on pointerover
* Typo fix
* Added new color formats into editor
* Added 3 different activation actions to choose from
* Added new color formats into settings for editor
* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Updated expect.txt
* Removed MahApps
* Removed MahApps from installer for Color Picker module
* Updated settings page
* Typo fix and moved string to Resources
* Typo fixes and string improvements
* Fixing build
* Replacing DispatcherTimer with Timer from System.Timers
* Fixing tests
* adjustments
* adjustments
* removed periods
* Fixing build
* unifiying language
* Added using statement in tests
* Disabled drop shadow for Color Picker and Zoom Window due to poor performance
* Stylecop fixes
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Update primary desktop data after virtual desktop switch
* Don't remove zeroed-GUID inside RemoveDeletedDesktops method
* Minor refactoring in VirtualDesktopUtils
* Use std::vector::empty check instead of comparing size with 0
* fix compilation issues for VS 16.8.* release
* - VS 16.8 changed its template instantiation model, so now the compiler checks the syntax used in template even when it's not instantiated. we were relying on that behavior to declare the list of required localized strings from a shared header => replacing that template with a macro.
* - fix 3 C++ `const auto&` bugs the new compiler was able to uncover
* - enabled /Zc:twoPhase- for bootstrapper and PowerToysSetupCustomActions to workaround 10.0.17134.0 headers' issue.
- PowerToysSetupCustomActions.vcxproj now uses 10.0.17134.0 instead of "latest" SDK
* - PowerToysSetupCustomActions project leverages `goto` operator's power extensively, and the new compiler was able to uncover new uninitialized variables behavior, restructured declarations and changed `NULL`s to `nullptr`s.
* - Fix unit FZ unit test compiler error
* - format FZS unit test source file
* fixup fz tests
* use /Zc:twoPhase- for common-md as well
* Add boost-regex library
* If enabled use boost lib for regex
Add property `_useBoostLib` to `CPowerRenameRegEx`. If enabled for
replacements with regular expressions the Boost Library is used instead
of the Standard Library.
* Extend signatures to create RegEx with Boost
Extend create and constructor singatures of `CPowerRenameRegEx` with an
option to enable (or disabled, which is default) the Boost Library.
* Verify Lookbehind fails with STD library
To verify that the boost library is disabled as expected, check if a
lookbehind fails.
* Add Unit tests for RegEx with Boost
Add unit tests to verify regex replacement with Boost Library. They are
copied and adapted from the Standard Library tests.
* Improve verify capturing groups test with Boost
It is possible to use a capturing group followed by numbers as
replacement if the group number is enclosed in curly braces.
Added test cases based on the Standard Library tests.
* Add useBoostLib to settings interface
* Get library option from settings object
* Reduce signatures of RegEx by "useBoost"
Remove the parameter added in 19105cf, as it became obsolete.
* Settings: Read useBoostLib from JSON file
* Add UseBoostLib Option to UI
* Boost Lib label states the regex syntax difference
* Fix Regex with Boost Lib tests
- Do not load settings another time in CPowerRenameRegEx ctor
- Set flag correctly in standard library regex tests
* Add "lookbehind" to dictionary
* change Library to lowercase, and also add a comment
As suggested by @enricogior.
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
* Change Library to lowercase and add a comment
As suggested by @enricogior.
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
No other usage of GetLastError has the result assigned to a variable first in this code, so it is better if we make check_user_is_admin the same in that regard.
* added some test config files
* Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json
* Revert "Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json"
This reverts commit fe3ed40902.
* Revert "added some test config files"
This reverts commit d08928423a.
* add a settings utils to test that a default item is returned when the json file is corrupt
* Started work
* Good progress on D2D
* Visuals are good, functionality - almost there
* Opacity fix
* Animation works, WM_PAINT still doesn't
* Simplify code, remove flashZones, remove unused code
* Kinda works, but it's a bit laggy
* Works great, but needs refactoring/performance improvements
* Move code from .h to .cpp
* Polished the functionality
* Fix issue with changing monitors
* Rebase fix
* Finalize PR before review
* Couple two members of ZoneWindowDrawing
* Also request a low latency lock when hiding the zone window
* Move textFormat and textBrush out of the loop
* Thread-safe initialization
* Rebase fix: zone numbers
* Make zone borders crispy
* Fix offsets
* Another rebase fix
* Fix DPI bug
* CA1052: Static holder types should be Static or NotInheritable
* CA1041: Provide ObsoleteAttribute message
* CA1062: Validate arguments of public methods
* CA1304: Specify CultureInfo / CA1305: Specify IFormatProvider / CA1307: Specify StringComparison for clarity
* CA1802: Use Literals Where Appropriate
* CA1820: Test for empty strings using string length
* CA1707: Identifiers should not contain underscores
* CA1805: Do not initialize unnecessarily.
* CA1822: Mark members as static
* CA2227: Collection properties should be read only
* CA1054: URI parameters should not be strings
* CA1031: Do not catch general exception types
* CA1060: Move P/Invokes to NativeMethods class
* CA1308: Normalize strings to uppercase
* CA2000: Dispose objects before losing scope / CA2234: Pass System.Uri objects instead of strings
* CA2234: Pass System.Uri objects instead of strings
* CA1044: Properties should not be write only
* CA1716: Identifiers should not match keywords
* CA2007: Do not directly await a Task
* CA2007: Do not directly await a Task (Suppressed)
* CA5350: Do Not Use Weak Cryptographic Algorithms (Suppressed)
* CA1724: Type names should not match namespaces (renamed Settings.cs to PowerToysRunSettings.cs)
* CA1033: Interface methods should be callable by child types (Added sealed modifier to class)
* CA1724: Type names should not match namespaces (Renamed Plugin.cs to RunPlugin.cs)
* CA1724: Type names should not match namespaces (Renamed Http.cs to HttpClient.cs)
* CA5364: Do not use deprecated security protocols (Remove unused code)
* Enabled FxCopAnalyzer for Wox.Infrastructure
* fixed comment
* Addressed comments
- Changed Ordinal to InvariantCulture
- Added comments
- Removed unused obsolete code
- Removed unused method (CA2007: Do not directly await a Task)
* Addressed comments - fixed justification for CA1031 suppression
* Addressed comments - Fixed justification for CA1031 suppression in Wox.Core/Wox.Plugin
* Remove redundant default initializations
* Implement IDisposable in HotkeySettingsControl
* Mark classes and methods as static
* Move Interop.ShowWindow to NativeMethods class
* Fix string-related warnings
* Remove unused argument for KeyEventHandler
* Log caught general exceptions
* Use safe navigation operator for null argument checks
* Suppress CA2007 warnings and enable FxCop
* Suppress warning for unused event handler params
* Use TryParse in ImageResizerPage
* Use ConfigureAwait(false) for CA2007
* indexer drive detection helper code to not show the warning for a single drive
* removed interface from the namespace due to stylecop
* removed interfac which no longer exists
* filter out only fixed drives in the system and ignore the removable drives
* changed text to not all files are indexed, from not all drives are idnexed
* add additional info in the comment
* Added CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)
* Check arguments and throw ArgumentNullException (CA1062: Validate arguments of public methods)
* Changed url parameter from string to System.Uri and added null checks (CA1054: URI parameters should not be strings)
* Rethrow exception without specifying the exception explicitly (CA2200: Rethrow to preserve stack details)
* Changed from Collection property to methods for PluginMetadata::ActionKeywords (CA2227: Collection properties should be read only)
* Changed from Collection property to methods for Result::GetTitleHighlightData (CA2227: Collection properties should be read only)
* Made Collection property read-only and added parameter in constructor for Result::SubTitleHighlightData (CA2227: Collection properties should be read only)
* Made Collection property read only and added parameter in constructor for ResultUpdatedEventArgs::Results (CA2227: Collection properties should be read only)
* CA1507: Use nameof in place of string
* Removed initialization for ThemeManager::_disposed (CA1805: Do not initialize unnecessarily)
* Changed Query::Terms array property to ReadOnlyCollection and added private set (CA1819: Properties should not return arrays)
* CA1060: Move P/Invokes to NativeMethods class
* CA1806: Do not ignore method results
* CA2101: Specify marshaling for P/Invoke string arguments
* Removed unnecessary empty interface IFeatures (CA1040: Avoid empty interfaces)
- Removed IFeatures interface and references
- Renamed IFeatures.cs to IContextMenu.cs according to guidelines
* Added comments for CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)
* Added localization for Wox.Plugin and localized strings in FilesFolders.cs
* added a json exception catch statement as a fail safe to create a fresh configuration file when settings is corrupted
* change formatting
* add issue link
* add extra info in the comment
* Enable FxCop for Microsoft.PowerToys.Settings.UI.Runner
* Log exceptions in WindowsXamlHost_ChildChanged
* Add Debugger.Break in debug mode
* Move Debugger.Break into Logger class
* 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 shell page headings
* add headings for all the PTsettings
* add heading level 1 for the heading of each page
* Add heading level to the style instead of redifining it multiple times
* revert adding level2 for each control
* add heading level for run as admin because it does not follow the group style and rather the default style
* Moved Logger/Log.cs from Wox.Infrastructure to Wox.Plugin
- Installed Logger dependency in Wox.Plugin: NLog.Extensions.Logging
- Moved file Log.cs from Wox.Infrastructure/Logger/ to Wox.Plugin/Logger
- Moved file Constant.cs from Wox.Infrastructure to Wox.Plugin: This file was moved since Log.cs depends on this class
- Copied Wox.Infrastructure.Helper.NonNull to Wox.Plugin.Constant since Constant.cs depends on this method
- Replaced all "using Wox.Infrastructure.Logger" to "using Wox.Plugin.Logger" in all files as needed
- Replaced Wox.Infrastructure.Constant to Wox.Plugin.Constant in all files as needed
* Removed Nlog.Extensions.Logging from Wox.Infrastructure
* Added logging and suppressed general exceptions (CA1031: Do not catch general exception types)
* Resolved fxcop errors introduced by newly added Log.cs
- CA1307: Specify StringComparison for clarity
- CA2000: Dispose objects before losing scope
- CA1062: Validate arguments of public methods
* Replaced Wox.Infrastructure.Logger with Wox.Plugin.Logger
* Rename Interface to Interfaces in namespaces
* Rename Lib to Library in namespaces
* Rename project and directory and enable fxcop
* Add CA2213 suppression
* Minor fixes
* Added InvarientCulture info (CA1305: Specify IFormatProvider)
* Removed underscore from method names (CA1707: Identifiers should not contain underscores)
* Marked members as static (CA1822: Mark members as static)
* Removed initialization for DummyTestClass::IsFunctionCalled (CA1805: Do not initialize unnecessarily)
* Replaced Count with Any (CA1827: Do not use Count/LongCount when Any can be used)
* Changed WoxTest::DummyTestClass to private (CA1034: Nested types should not be visible)
* Suppressed warnings for uninstantiated internal classes used as TestFixtures (CA1812: Avoid uninstantiated internal classes)
* Enabled FxCopAnalyzer for Wox.Test
* Added suppression message for CA1812 in GlobalSuppressions.cs and removed inline supression messages (CA1812: Avoid uninstantiated internal classes)
* Changed InvariantCulture to Ordinal where appropriate
* Addressing comments: Updated justification for CA1812 in GlobalSuppressions.cs (Avoid uninstantiated internal classes)
* remove functions which mages cannot interpret and add in functions which mages can
* set validResult when the result is explicitly created to differentiate it form an empty CalculateResult
* Add condition to check that the input is not ending with a binary operation
* add tests for all the cases
* use valid result while calculating hash as well
* add test for e is valid within regex
* removed i from regex
* remove valid result to use decimal? instead
* remove duplicate rand and exp
* Enable Run as Admin Arguments
* Use a seperate function for both methods which were generating ProcessStartInfo fixes missing LnkResolvedPath missing in contextmenu (E.g. Shortcuts / PWA's).
* Update tests
* Move ProgramArguments to Result class
Co-authored-by: Roy <royvou@hotmailcom>
* Add AutomationProperties.Name to focusable elements
* Add AutomationProperties.Name to focusable elements
* Use AutomationProperties.LabeledBy with buttons / text boxes
* Address PR comments
* Add HSL and HSV color formats + cleanup + docu
* Fix build problem (lang version)
* Add CYMK color + replace float with double values
* ups - fix cmyk text format
* fix wrong settings text + doc typo fix
* Address feedback
* Address feedback + fix to small window size
* adress feedback + more cleanup
* typo fix
* Avoid possible division by zero + unit test
* Address feedback - move all represenation to own helper class + UnitTest
* Address feedback -> switch to mstest framework
* Fix autocomplete text issue on query change
* Update from invariant to ordinal case for exact byte to byte matching
* Add tests for checking when autocomplete should be empty
* Added get_key to powertoysmodule interface
* Replace get_name with get_key
* Implement get_key function in modules
* Make key global constant in each module
* Update settings v1 to use key to load and save files
* Fixed fancyzones and preview pane unit tests
* Removed setings unit test as the case is not covered anymore
* Add constant files for modules and use it to reference module key
* Add constant string files to colorpicker, launcher and shortcut guide
* correct sunction signature in settings helper
* Fix powerpreview merge conflicts
* nit fix with include statement location
* add check for fields in from_json_string
* Updated preview pane tests with correct from_json_string signature
* Correct Image resizer naming
* Roll back changes for adding check for property and version
* Fix image resizer not working
* FxCop Fixes- added InvarientCulture info, suppressed warnings for general exception types
* Used IsNullOrEmpty to test for empty strings (CA1820: Test for empty strings using string length)
* Check if arguments are null and throw ArgumentNullException
* Removed unused function argument from PluginsLoader.cs
* Addressing comments- Using attributes to suppress errors for general exception types
* Addressing comments- Using attributes to suppress errors
* Addressed comments and changed InvariantCulture to CurrentCulture/Ordinal where appropriate
* Addressing comments - catching and logging specific exception in FontHelper.cs
* Suppress warnings for read-only collection properties (see code comments)
* Call ConfigureAwait on tasks
* Add CultureInfo and StringComparison policy for certain string operations
* Add checks and exceptions for null arguments to public methods
* Rename RaisePropertyChanged to NotifyPropertyChanged
* Suppress CA1000 warning on SettingsRepository class
* Implement Disposable pattern in HotkeySettingsControlHook
* Modify null argument handling in KeyboardManagerViewModel::CombineShortcutLists
* Add action keywords for each plugin
- Added keywords for each plug-in
- Change window walker search to use Query, not RawQuery (to get rid of action keyword)
- Make sure plug-ins that have action keywords as well as are in global list don't get added twice
All tests passed that passed before I started
Addressing issue #5823
* Fix bad formatting from the merge
* Do not add global plug-ins if we have an action keyword
Note side effect: you will not not be able to search for things that start with one of the plug-in keywords.
* Missed merge conflict repair!
* Revert "Do not add global plug-ins if we have an action keyword"
This reverts commit e3b0ecd708.
* Adjust keywords to suggested ones
* No need to ubild a query if we aren't going to use it
Didn't quite get the if statement right the first time I put it in.
* Do not add global plugins if we have an action keyword
This means, especially without a space, that global plugins do not become part of the search. Which really narrows down the search results, nicely.
* Update keywords as requested in the PR
* Modify shortcut to key code more similar to shortcut to shortcuts code. Manually tested cases
* Fixed existing tests and fixed scenario with other keys pressed and action key released
* Fixed dummy key usage
* Updated comments and removed dummy key usage in key to shortcut remaps
* Added tests for disable and shortcut to key. Pending tests for dummy key
* Added test cases for each usage of dummy key event
* Remove redundant check
* Pass zoneId on zone creaton and make it const
Refactor IZone and Zone - make methods const
and remove SetId
* Update tests
* Fix Grid layout zone order
* Improvements in enumeration of available screens (work areas)
* Minor code style improvement
* Address PR comments
* Store map of display device name to device index
* Address PR comments
* Update comment
* Break when suitable device is found
* Added PowerLauncher resource files
* Fixed typo in language
* Updated localized .NET framework projects to include all resx files
* Fixed typo in FZEditor.csproj
* Added FZ Editor (.NET framework) resource dlls
* Updated pipeline
* Tweaked artifact statement to get all resource dlls in pipeline
* Fix SvgPreviewHandler resx inclusion in csproj
* Added condition to allow local MSI builds to run without resources
* Generalized directory code
* Added all resources that are to be added from C# projects, Settings UWP pending
* Added markdown prev handler as keypath
* Added loc script for Settings to move resw files to UWP file format
* Separate markdown and svg resource components to allow guid auto-generation
* Removed old image resizer resources
* Fixed formatting
* Changed tabs to space
* Made drawing zones not clog message processing
* Fixed synchronization bugs
* call BufferedPaintInit
* Some refactoring, the animation is back
* Rename a function
* Align parameters