* Initial plan
* Refactor tests to use modern ApplicationImpl.Coordinator architecture instead of legacy Application.RunIteration
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Changes before error encountered
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Replace Application.RunIteration implementation to use modern ApplicationImpl.Coordinator architecture
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Simplify Application.RunIteration to directly delegate to ApplicationImpl.Coordinator without legacy infrastructure
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Update multitasking.md documentation to use Application.AddTimeout/RemoveTimeout instead of deprecated Application.MainLoop methods
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor contribution guidelines and documentation
- Consolidated all contribution-related instructions into `CONTRIBUTING.md` as the single source of truth.
- Updated `copilot-instructions.md` and `AGENTS.md` to reference `CONTRIBUTING.md`.
- Enhanced build, test, and CI/CD workflow documentation.
- Updated repository structure documentation in `README.md` and `CONTRIBUTING.md`.
- Reinforced coding conventions and streamlined testing requirements.
- Documented GitHub Actions workflows and provided local CI replication steps.
- Refined API documentation requirements and PR guidelines.
- Simplified `.sln` file and removed redundant content.
- Updated links to point to the latest documentation resources.
* Revamp bug report template for clarity and detail
Updated the bug report template to improve structure, readability, and comprehensiveness:
- Specified "Terminal.Gui" in the `about` section.
- Replaced bold headings with Markdown heading syntax.
- Enhanced "To Reproduce" with placeholders for code and behavior details.
- Added an "Environment" section to collect OS, terminal, PowerShell, .NET, and `Terminal.Gui` version details.
- Expanded "Screenshots" to include GIFs and terminal output instructions.
- Removed outdated "Desktop" and "Smartphone" sections, consolidating relevant details.
- Improved "Additional Context" with prompts for consistency, prior behavior, and error messages.
- Streamlined "For Maintainers" instructions for setting project and milestone.
These changes aim to make bug reports more actionable and easier to reproduce.
* Remove [Obsolete] attribute and pragma warnings from Application.RunIteration - method now uses modern architecture internally
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor Application.Run.cs for clarity and cleanup
Removed debug assertions and unused/commented-out code to simplify logic and improve maintainability. Renamed `forceDraw` to `forceRedraw` in `LayoutAndDraw` for better clarity. Removed the internal `OnNotifyStopRunState` method and its associated logic, indicating a refactor of the stop notification mechanism.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tig <tig@users.noreply.github.com>
Co-authored-by: tig <585482+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
* 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>
* Subview clean up
* New Add/Remove event pattern
* Using Logging
* cleanup
* Subview -> SubView
* Test code cleanup. Killed many warnings.
* Fix tznind feedback
* Refactored AllViewTest helpers
* Moved keyboard tests to parallel
* Moved mouse tests to parallel
* Moved view tests to parallel
* Test code cleanup. Killed many warnings.
* dupe test
* Some mouse tests can't run in parallel because MouseGrabView
* Made SpinnerView more testable
* Moved more tests
* SubViews to IReadOnlyCollection<View>
* SubViews to IReadOnlyCollection<View> 2
* scrollbar tests
* shortcut tests
* Use InternalSubViews vs. _subviews
* Nuked View.IsAdded.
Added View.SuperViewChanged.
* API doc updats
* Unit Test tweak
* Unit Test tweak
* Tons of API doc updates
* Removed stale test
* Removed stale tests
* Fixed Skipped Shadow test 1
* Fixed Skipped Shadow test 2
* Fixed Skipped Shadow test 3
* Removed stale test
* Removed stale test2
* Explicit unregister of event handler on Application.Driver!.ClearedContents
* Added Toplevels to dict
* code cleanup
* spelling error
* Removed stale test3
* Removed stale test4
* Removed stale test5
* added script
* tweaked script
* tweaked script
* Created StressTests project; moved some tests
* Created IntegrationTests project; moved some tests
* New yml
* made old yml just unit tests
* Tweaked Button_IsDefault_Raises_Accepted_Correctly
* tweaked script
* cleaned up ymls
* tweakled up ymls
* stress tests...
* stress tests on ubuntu only
* Fixed WindowsDriver in InvokeLeakTest
* Fixed WindowsDriver in InvokeLeakTest2
* Added Directory.Packages.props.
Added Directory.Build.props
* Shortened StressTest time
* Removed dupe file.
* DemoFiles
* Moved all tests to ./Tests dir.
* Fixed release build issue
* Fixed .sln file
* Fixed .sl* files
* Fixing ymls
* Fixing interation tests
* Create link to the file TestHelpers.
* Created Tests/UnitTestsParallelizable.
Moved all obviously parallelizable tests.
Updated yml.
* fixing logs
* fixing logs2
* fixing logs3
* don't require stress to pass for PRs
* Fix a failure?
* tweaked script
* Coudl this be it?
* Moved tons of tests to parallelizable
* Fixed some stuff
* Script to find duplicate tests
* Testing workflows
* Updated to v4
* Fix RelativeBasePath issue
* Replace powershell to pwsh
* Add ignore projects.
* Removed dupe unit tests
* Code cleanup of tests
* Cleaned up test warnings
* yml tweak
* Moved setter
* tweak ymls
* just randomly throwing spaghetti at a wall
* Enable runing 5 test runners in par
* Turned off DEBUG_DISPOSABLE for par tests
* RunningUnitTests=true
* code cleanup (forcing more Action runs)
* DISABLE_DEBUG_IDISPOSABLE
* Added View.DebugIDisposable. False by default.
* Remobed bogus tareet
* Remobed bogus tareet2
* fixed warning
* added api doc
* fixed warning
* fixed warning
* fixed warning2
* fixed warning3
* fixed warning4
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>