-
Notifications
You must be signed in to change notification settings - Fork 725
Closed
Labels
designIssues regarding Terminal.Gui design (bugs, guidelines, debates, etc...)Issues regarding Terminal.Gui design (bugs, guidelines, debates, etc...)
Description
This is mostly fixed in #3323.
What won't be addressed there is:
-
ConsoleDriver.Move
should not bepublic
and should only be called byView.Move
. - It should not be possible for a
View
to changeDriver.Clip
. -
Driver.ClearContents
setsClip
toScreen
. This is dangerous. Either move theClip =
elsewhere or restrict who can callClearContents
-
Driver.AddStr
has bugs in it related toClip
; there are codepaths whereContents
's bounds are exceeded even whenIsValidLocation
is true. - Views and Scenarios that use
Driver.
anywhere should be updated to use the equivalentView
API. IOW, we should remove as much coupling betweenView
andDriver
as possible
Already adressed:
-
View.Clear
- I've already done this forClear
inBoundsToScreen
is confusing #3298 -
View.Move
- Before the call toDriver.Move
, ensure coords are w/inBounds
-
View.SetNeedsDisplay
Additionally: We should make Driver.AddRune/AddStr/Move
internal
and change all built-in views that use these APIs use View.AddRune/AddStr/Move
instead
These are all causes of confusion and potential bugs.
I'm not a fan of letting views draw in arbitrary places. If there's use case for a view drawing outside of it's bounds (once Adornments
is finished), please let me know!
Metadata
Metadata
Assignees
Labels
designIssues regarding Terminal.Gui design (bugs, guidelines, debates, etc...)Issues regarding Terminal.Gui design (bugs, guidelines, debates, etc...)