* Consider width2 chars that are not IsBmp
* Apply same fix in WindowsDriver
* Explicitly use type of local variable
* Revert changes to WindowsDriver
* Assume we are running in a terminal that supports true color by default unless user explicitly forces 16
* Switch to SetAttribute and WriteConsole instead of WriteConsoleOutput for 16 color mode
* Fix some cursor issues (WIP)
* Remove concept of 'dirty rows' from v2 as its never actually used
* Remove damageRegion as it does nothing
* Make string builder to console writing simpler
* Radically simplify Write method
* Simplify conditional logic
* Simplify restoring cursor position
* Reference local variable for console buffer
* Reduce calls to ConsoleWrite by accumulating till attribute changes
* When resizing v2 16 color mode on windows, recreate the back buffer to match its size
* Fixes for VTS enabled
* Fix _lastSize never being assigned
* Fixes VTS for Force16Colors
* Fixes force16Colors in VTS
* Fixes escape sequences always echoing in non-VTS
* Force Force16Colors in non-VTS. It have a bug in adding a newline in the last line
* WIP Add base class for NetOutput
* Abstract away how we change attribute
* WIP - Make WindowsOutput use base class
* WIP working to fix set cursor position
* Remove commented out code
* Fixes legacy output mode
* Fixes size with no alt buffer supported on VTS and size restore after maximized.
* Fix set cursor which also fixes the broken surrogate pairs
* Add force parameter
* Fixes an issue that only happens with Windows Terminal when paste surrogate pairs by press Ctrl+V
* In Windows escape sequences must be sent during the lifetime of the console which is created in input handle
* Ensure flush the input buffer before reset the console
* Flush input buffer before reset console in v2win
* Fixes issue in v2net not being refreshing the menu bar at start
* Only force layout and draw on size changed.
* Fix v2net issue not draw first line by forcing set cursor position
* Set _lastCursorPosition nullable and remove bool force from set cursor position
* Remove force parameter
* Add v2 version of fake driver attribute
* Make direct replacement and wire up window resizing events
* Update casts to use V2 fake driver instead
* Adjust interfaces to expose less internals
* Fix not raising iteration event in v2
* WIP investigate what it takes to do resize and redraw using TextAlignment_Centered as example
* Sketch adding component factory
* Create relevant fake component factories
* Add window size monitor into factory
* Fake size monitor injecting
* Add helper for faking console resize in AutoInitShutdown tests
* Fix size setting in FakeDriverV2
* Switch to new method
* Fix IsLegacy becoming false when using blank constructor
* Fix for Ready not being raised when showing same top twice also fixes garbage collection issue if running millions of top levels
* Fix tests
* Remove auto init
* Restore conditional compilation stuff
* Restore 'if running unit tests' logic
* Check only for the output being specific classes for the suppression
* Fix ShadowView blowing up with index out of bounds error
* Fix resize in fluent tests
* Fix for people using Iteration call directly
* Fix more calls to iteration to use
AutoInitShutdownAttribute.RunIteration ();
* Add comment
* Remove assumption that Run with prior view not disposed should throw
* Fix timings in Dialog_Opened_From_Another_Dialog
* Fix Zero_Buttons_Works
* Standardize and fix Button_IsDefault_True_Return_His_Index_On_Accepting
* Fix iteration counts on MessageBoxTests
* Fix WizartTests and DrawTests_Ruler
* Implement SendKeys into ConsoleDriverFacade
* Fix SendKeys in console driver facade such that FileDialogTests works
Fix when Clip is null in popover
* Add missing dispose call to test
* Fix support for Esc in facade SendKeys
* Fix AutocompleteTests
* Fix various tests
* Replace LayoutAndDraw with run iteration
* Fix draw issues
* fix draw order
* Fix run iteration calls
* Fix unit tests
* Fix SendKeys in facade.
* Manipulate upper and lower cases.
* Add IsValidInput method to the interface.
* Fix SendKeys scenario
* Fixes surrogate pairs in the label
* Make tests more sensible - they are testing draw functionality. Callbacks do not need to happen in Iteration method
* Fix tests and harden cleanup in AutoInitShutdownAttribute v2 lifecycle dispose
* Delete extra create input call
* Fix mocks and order of exceptions thrown in Run when things are not initialized
* Revert use of `MapConsoleKeyInfoToKeyCode`
* Ignore casing as it is not what test is really about
* Clear application top and top levels before each auto init shutdown test
* Fix for unstable tests
* Restore actually working SendKeys code
* option to pass logger in fluent ctor
* restore ToArray
* Fix SendKeys method and add extension to unit test
* Leverage the EscSeqUtils.MapConsoleKeyInfo method to avoid duplicate code
* Remove unnecessary hack
* Using only KeyCode for rKeys
* Recover modifier keys in surrogate pairs
* Reformat
* Remove iteration limit for benchmarking in v2
* remove iteration delay to identify bugs
* Remove nudge to unique key and make Then run on UI thread
* fix fluid assertions
* Ensure UI operations all happen on UI thread
* Add explicit error for WaitIteration during an invoke
* Remove timeout added for debug
* Catch failing asserts better
* Fix screenshot
* Fix null ref
* Fix race condition in processing input
* Test fixing
* Standardize asserts
* Remove calls to layout and draw, remove pointless lock and enable reading Cancelled from Dialog even if it is disposed
* fix bad merge
* Make logs access threadsafe
* add extra wait to remove race between iteration end and assert
* Code cleanup
* Remove test for crash on access Cancelled after dispose as this is no longer a restriction
* Change resize console to run on UI thread - fixing race condition with redrawing
* Restore original frame rate after test
* Restore nudge to unique key
* Code Cleanup
* Fix for cascading failures when an assert fails in a specific test
* fix for bad merge
* Address PR feedback
* Move classes to seperate files and add xmldoc
* xml doc warnings
* More xml comments docs
* Fix spelling
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
* Fixes#4208. MainLoopSyncContext doesn't work with the v2 drivers
* Fixes#3951. Add DimFuncWithView with a View dependency
* Revert to iteration which will handle the necessary processes
* Revert "Revert to iteration which will handle the necessary processes"
This reverts commit 50015ac6da.
* Layout and draw before position cursor
* Add optional View parameter and property to the DimFunc and PosFunc
* Trying fix unit test error
* Revert layout changes
* Fixes#4216. Legacy drivers aren't refreshing the screen correctly on view drag
* Add assertion proving NeedsLayout is always false before call OnSubViewsLaidOut
* Fix unit test error
* Increasing time to abort
* Revert "Increasing time to abort"
This reverts commit d7306e72f3.
* Trying fix integration tests
* Still trying fix integrations unit tests
* Revert comment
* Layout is performed during the iteration
* Using Dim.Func with status bar view
* Still trying fix integrations tests by locking _subviews
* Still trying fix integrations tests by locking _subviews
* Add internal SnapshotSubviews method
* Remove lock from SnapshotSubviews method
* Using SnapshotSubviews method in the DrawSubViews method
* Remove lock from SnapshotSubviews method
* Using SnapshotSubviews method in the DrawSubViews method
* Using SnapshotSubviews
* Prevent new app if the previous wasn't yet finished
* Replace SnapshotSubviews method with ViewCollectionHelpers class
* Lock entire GuiTestContext constructor
* Using Snapshot in the ordered field
* Fixes#4221 Extra modifiers f1 to f4 in v2net (#4220)
* Assume we are running in a terminal that supports true color by default unless user explicitly forces 16
* Add support for extra modifiers for F1 to F4 keys
* Revert "Assume we are running in a terminal that supports true color by default unless user explicitly forces 16"
This reverts commit 4cc2530de0.
* Cleanup
* Update comments
* Code cleanup
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Move ViewCollectionHelpers class to a separate file
* Remove Border.Layout call in the DoDrawAdornmentsSubViews method.
* Remove adornments layout call within the draw
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
Co-authored-by: Thomas Nind <31306100+tznind@users.noreply.github.com>
* Assume we are running in a terminal that supports true color by default unless user explicitly forces 16
* Add support for extra modifiers for F1 to F4 keys
* Revert "Assume we are running in a terminal that supports true color by default unless user explicitly forces 16"
This reverts commit 4cc2530de0.
* Cleanup
* Update comments
* Code cleanup
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Consider width2 chars that are not IsBmp
* Apply same fix in WindowsDriver
* Explicitly use type of local variable
* Revert changes to WindowsDriver
* Assume we are running in a terminal that supports true color by default unless user explicitly forces 16
* Switch to SetAttribute and WriteConsole instead of WriteConsoleOutput for 16 color mode
* Fix some cursor issues (WIP)
* Remove concept of 'dirty rows' from v2 as its never actually used
* Remove damageRegion as it does nothing
* Make string builder to console writing simpler
* Radically simplify Write method
* Simplify conditional logic
* Simplify restoring cursor position
* Reference local variable for console buffer
* Reduce calls to ConsoleWrite by accumulating till attribute changes
* When resizing v2 16 color mode on windows, recreate the back buffer to match its size
* Fixes for VTS enabled
* Fix _lastSize never being assigned
* Fixes VTS for Force16Colors
* Fixes force16Colors in VTS
* Fixes escape sequences always echoing in non-VTS
* Force Force16Colors in non-VTS. It have a bug in adding a newline in the last line
* WIP Add base class for NetOutput
* Abstract away how we change attribute
* WIP - Make WindowsOutput use base class
* WIP working to fix set cursor position
* Remove commented out code
* Fixes legacy output mode
* Fixes size with no alt buffer supported on VTS and size restore after maximized.
* Fix set cursor which also fixes the broken surrogate pairs
* Add force parameter
* Fixes an issue that only happens with Windows Terminal when paste surrogate pairs by press Ctrl+V
* In Windows escape sequences must be sent during the lifetime of the console which is created in input handle
* Ensure flush the input buffer before reset the console
* Flush input buffer before reset console in v2win
* Fixes issue in v2net not being refreshing the menu bar at start
* Only force layout and draw on size changed.
* Fix v2net issue not draw first line by forcing set cursor position
* Set _lastCursorPosition nullable and remove bool force from set cursor position
* Remove force parameter
* Cleanup code
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
* Fixes nuget packages with vulnerabilities
* Using netstandard2.1
* Revert "Using netstandard2.1"
This reverts commit b19317f8c1.
* Replacing to 3.11.0 and 4.13.0 versions
* Using 4.12.0 version
* Revert "Using 4.12.0 version"
This reverts commit bb4f9212c4.
* Change to 4.12.0 version
* Remove unused nuget package
* Fixes#4204. v2win and v2net aren't refreshing the Character Map correctly
* Reformat to run CI again
* Revert "Reformat to run CI again"
This reverts commit 3efad83f52.
* Revert "Fixes #4204. v2win and v2net aren't refreshing the Character Map correctly"
This reverts commit 6ec4adcc45.
* Apply @tig suggested changes
* Fixes#4208. MainLoopSyncContext doesn't work with the v2 drivers
* Trying fix unit test error
* Revert "Trying fix unit test error"
This reverts commit 3aaefd6053.
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Fixes#4196. Application.Begin doesn't refresh the screen at start
* Reformatting to run CI again
* Revert "Reformatting to run CI again"
This reverts commit ef639c1e64.
* Trying fix an issue where sometimes subview variable is null running unit tests
* Add comment and decrease the delay time
* Remove continous press code from Application
* WIP prototype code to handle continuous press as subcomponent of View
* Prototype with Button
* Implement CWP
* Move to seperate classes and prevent double entry to Start
* Fix repeat clicking when moving mouse by removing phantom click code (old implementation of WantContinuousButtonPressed)
* Remove initial tick because it results in double activation e.g. button firing twice immediately as mouse is pressed down.
* Refactor DatePicker lamdas
* WIP investigate subcomponents instead of statics
* Add IMouseGrabHandler to IApplication
* Make mouse grabbing non static activity
* Make MouseHeldDown suppress when null fields e.g. app not initialized in tests
* Update test and remove dependency on Application
* Fix other mouse click and hold tests
* Code cleanup
* Update class diagram
* Fix bad xml doc references
* Fix timed events not getting passed through in v2 applications
* Make timed events nullable for tests that dont create an Application
* Remove strange blocking test
* WIP remove all idles and replace with zero timeouts
* Fix build of tests
* Fix unit tests
* Add wakeup call back in
* Comment out incredibly complicated test and fix others
* Fix test
* test fix
* Make Post execute immediately if already on UI thread
* Re enable test and simplify Invoke to just execute if in UI thread (up front)
* Remove xml doc references to idles
* Remove more references to idles
* Make Screen initialization threadsafe
* Add more exciting timeouts
* WIP add tests
* fix log
* fix test
* make continuous key press use smoth acceleration
* Rename _lock to _lockScreen
* Remove section on idles, they are not a thing anymore - and they kinda never were.
* Add nullable enable
* Add xml comment
* Fix namings and cleanup code
* xmldoc fix
* Rename LockAndRunTimers to just RunTimers
* Rename AddTimeout and RemoveTimeout (and event) to just Add/Remove
* Update description of MainLoop
* Commented out Run_T_Call_Init_ForceDriver_Should_Pick_Correct_Driver
* Again? Commented out Run_T_Call_Init_ForceDriver_Should_Pick_Correct_Driver
* Revert Commented out Run_T_Call_Init_ForceDriver_Should_Pick_Correct_Driver
* When mouse is released from MouseHeldDown reset host MouseState
* Fix namespaces in class diagram
* Apply @BDisp suggested fix
* Fix class diagrams
* Add lock
* Make TimeSpan.Zero definetly run
* Fix duplicate entry in package props
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Added analyzer
* WIP - Trying to create tests, failing with bad dependencies
* Working test woo
* Tidy up
* Tidy up
* Fix integration tests failing on command line
* Use 4.11 compiler
* Fix expecting 'e' as param name
* Make analyzer come as part of Terminal.Gui
* Add docs
* Fix warnings
* Source link should be private
* Remove unnecessary System.Text.Json reference
* Use logging abstractions
* Use fixed logging version
* Remove unnecessary analysis references
---------
Co-authored-by: Daniel Marbach <danielmarbach@users.noreply.github.com>
* Fixes#4139. Application.Run<T> isn't initializing properly by setting the Application.ForceDriver property
* Trying fix unit tests
* Only to force again CI tests because I haven't errors locally
* This should pass, unless RunningUnitTests is set to false somewhere
* Fix Unix unit tests and failures via ReSharper
* Changes suggested by @tig
* Prevent empty string
* Centralize all the entry logic in the InternalInit method
* Change GetDriverTypes to return a tuple
* Move parallelizable to new file
* Add UseSameRuneTypeForWords property
* Add SelectWordOnlyOnDoubleClick property and ProcessDoubleClickSelection method
* Change IsSameRuneType method to also handle equivalent rune types
* Fix WordBackward and WordForward to support properly handle rune types
* Fix unit test to deal properly with the new roles of rune types
* Add new unit tests
* Remove duplicated unit test
* Add UseSameRuneTypeForWords and SelectWordOnlyOnDoubleClick handling into Editor scenario
* Fixes#4080. TabGroup not always navigate correctly across groups
* Remove duplicated code
* Improves code by removing duplicate code
* Made requested changes
* Change to Theory unit test
* Cleanup to run git actions again
* Trying fix racing fail unit tests
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Fixes#4116. NativeAot and SelfContained projects aren't working well in release mode
* Revert delete nuget package because it fail in the git actions
* Trying automatize the nuget package installation
* Fixing UserProfile
* Trying fix push package for Unix OS
* Still triying to push nuget to the Unix
* Trying delete nuget package in the Pack target
* Trying fix git actions for release build
* Fix projects path
* Still fixing restore
* Add restore force parameter
* Build NativeAot and SelfContained projects before solution
* Build solution without restore
* Restore solutions packages before build
* Call dotnet restore before build the AOT and self-contained projects
* Remove unneeded run
* Revert "Remove unneeded run"
This reverts commit e04498d1ce.
* Trying fix racing fail unit tests
---------
Co-authored-by: Tig <tig@users.noreply.github.com>