Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VDG] Discreet mode autofill #9647

Merged
merged 25 commits into from
Dec 7, 2022

Conversation

ichthus1604
Copy link
Collaborator

@ichthus1604 ichthus1604 commented Nov 28, 2022

Fixes #9474

  • Introduces PrivacyTextPresenter, which renders a line of privacy chars according to the available width, instead of using a fixed number of them.

  • Eliminates the PrivacyContentControl.NumberOfPrivacyChars property

  • Marked as Draft until @wieslawsoltes can review the code in the PrivacyTextPresenter class for performance optimization.

SuperJMN
SuperJMN previously approved these changes Nov 28, 2022
Copy link
Collaborator

@SuperJMN SuperJMN left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an improvement and the code looks fine to me.
If we get bad performance with this, we can improve it easily with caching.

@wieslawsoltes
Copy link
Collaborator

@ichthus1604 Looking good, added caching for glyph run and formatted text.

@ichthus1604 ichthus1604 marked this pull request as ready for review December 6, 2022 20:50
@ichthus1604
Copy link
Collaborator Author

@zkSNACKs/visual-design-group ready for review. Let me know your thoughts

Things to look for: everywhere there is a privacy-sensitive piece of information, rendering of hashes and content layout be right.

cc @MaxHillebrand @yahiheb

Copy link
Collaborator

@yahiheb yahiheb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting

yahiheb
yahiheb previously approved these changes Dec 7, 2022
Copy link
Collaborator

@yahiheb yahiheb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK

BTW this fixes #9474, I added that to the PR's description.

soosr
soosr previously approved these changes Dec 7, 2022
Copy link
Collaborator

@soosr soosr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK.

@wieslawsoltes Please do a final review and merge it if you are happy.

@wieslawsoltes
Copy link
Collaborator

wieslawsoltes commented Dec 7, 2022

Enabled discrete mode and opened wallet stats and got app locked:

Unhandled exception. System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Avalonia.Media.GlyphRun.Initialize() in /_/src/Avalonia.Visuals/Media/GlyphRun.cs:line 611
   at Avalonia.Skia.DrawingContextImpl.DrawGlyphRun(IBrush foreground, GlyphRun glyphRun) in /_/src/Skia/Avalonia.Skia/DrawingContextImpl.cs:line 466
   at Avalonia.Rendering.SceneGraph.GlyphRunNode.Render(IDrawingContextImpl context) in /_/src/Avalonia.Visuals/Rendering/SceneGraph/GlyphRunNode.cs:line 58
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 437
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.RenderToLayers(Scene scene) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 492
   at Avalonia.Rendering.DeferredRenderer.UpdateRenderLayersAndConsumeSceneIfNeeded(IDrawingContextImpl& context, Boolean recursiveCall) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 416
   at Avalonia.Rendering.DeferredRenderer.Render(Boolean forceComposite) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 359
   at Avalonia.Rendering.DeferredRenderer.Paint(Rect rect) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 228
   at Avalonia.Controls.TopLevel.HandlePaint(Rect rect) in /_/src/Avalonia.Controls/TopLevel.cs:line 356
   at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs:line 370
   at Avalonia.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.WndProc.cs:line 33

@wieslawsoltes
Copy link
Collaborator

Enabled discrete mode and opened wallet stats and got app locked:

Unhandled exception. System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Avalonia.Media.GlyphRun.Initialize() in /_/src/Avalonia.Visuals/Media/GlyphRun.cs:line 611
   at Avalonia.Skia.DrawingContextImpl.DrawGlyphRun(IBrush foreground, GlyphRun glyphRun) in /_/src/Skia/Avalonia.Skia/DrawingContextImpl.cs:line 466
   at Avalonia.Rendering.SceneGraph.GlyphRunNode.Render(IDrawingContextImpl context) in /_/src/Avalonia.Visuals/Rendering/SceneGraph/GlyphRunNode.cs:line 58
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 437
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.Render(IDrawingContextImpl context, VisualNode node, IVisual layer, Rect clipBounds) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 446
   at Avalonia.Rendering.DeferredRenderer.RenderToLayers(Scene scene) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 492
   at Avalonia.Rendering.DeferredRenderer.UpdateRenderLayersAndConsumeSceneIfNeeded(IDrawingContextImpl& context, Boolean recursiveCall) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 416
   at Avalonia.Rendering.DeferredRenderer.Render(Boolean forceComposite) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 359
   at Avalonia.Rendering.DeferredRenderer.Paint(Rect rect) in /_/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs:line 228
   at Avalonia.Controls.TopLevel.HandlePaint(Rect rect) in /_/src/Avalonia.Controls/TopLevel.cs:line 356
   at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs:line 370
   at Avalonia.Win32.WindowImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/WindowImpl.WndProc.cs:line 33

ok so if count in CreateGlyphRun is equal 0 then we get this issue

CreateGlyphRun: 0
CreateGlyphRun: 0
CreateGlyphRun: 0
CreateGlyphRun: 2
CreateGlyphRun: 2
CreateGlyphRun: 0
CreateGlyphRun: 0
CreateGlyphRun: 0
CreateGlyphRun: 0

@wieslawsoltes wieslawsoltes dismissed stale reviews from soosr and yahiheb via 4844110 December 7, 2022 12:19
@wieslawsoltes
Copy link
Collaborator

LGTM

@wieslawsoltes wieslawsoltes merged commit b3a597c into WalletWasabi:master Dec 7, 2022
@wieslawsoltes wieslawsoltes deleted the DiscreetModeAutoChars branch December 7, 2022 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Discreet mode - Transaction Details Labels hover loops endlessly between hidden/revealed
5 participants