ICSharpCode.TextEditor.TextView.MeasureStringWidth crash
Author: mstvCreated Sep 9, 2026Updated Sep 19, 2026
Labels:eyeglasses: status: needs reviewneeds-area-label
Environment
- Git Extensions 33.33.33
- Build cb0240b634685eb63360692b671dcddb007f8244
- Git 2.53.0.windows.2
- Microsoft Windows NT 10.0.26200.0
- .NET 10.0.11
- DPI 96dpi (no scaling)
- Portable: False
Issue description
************** Exception Text **************
System.ArgumentException: Parameter is not valid.
at (HDC hdc, int saveState) System.Drawing.Graphics.System.Drawing.IGraphicsContextInfo.GetHdc(ApplyGraphicsProperties apply, bool alwaysSaveState)
at Size System.Windows.Forms.TextRenderer.MeasureTextInternal(IDeviceContext dc, ReadOnlySpan<char> text, Font font, Size proposedSize, TextFormatFlags flags)
at int ICSharpCode.TextEditor.TextView.MeasureStringWidth(Graphics g, in ReadOnlySpan<char> word, Font font) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs:line 611
at int ICSharpCode.TextEditor.TextView.GetVisualWidthColumns(Graphics g, LineSegment line) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs:line 736
at void ICSharpCode.TextEditor.TextAreaControl.UpdateLayout()+ComputeScrollBarVisibilities(Size size) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs:line 309
at void ICSharpCode.TextEditor.TextAreaControl.UpdateLayout() in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs:line 194
at void ICSharpCode.TextEditor.TextAreaControl.AdjustScrollBarsOnDocumentChange(object sender, DocumentEventArgs e) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs:line 147
at void ICSharpCode.TextEditor.Document.DefaultDocument.OnDocumentChanged(DocumentEventArgs e) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs:line 355
at void ICSharpCode.TextEditor.Document.DefaultDocument.set_TextContent(string value) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs:line 154
at void ICSharpCode.TextEditor.TextEditorControlBase.set_Text(string value) in D:/Build/gitextensions3_dev/externals/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs:line 128
at bool GitUI.Editor.FileViewerInternal.SetText(string text, Action openWithDifftool, ViewMode viewMode, bool useGitColoring, string contentIdentification) in D:/Build/gitextensions3_dev/src/app/GitUI/Editor/FileViewerInternal.cs:line 291
at Task GitUI.Editor.FileViewer.ViewPrivateAsync(FileStatusItem item, string fileName, string text, int? line, Action openWithDifftool, ViewMode viewMode, bool useGitColoring, CancellationToken cancellationToken)+() => { } in D:/Build/gitextensions3_dev/src/app/GitUI/Editor/FileViewer.cs:line 942
at async Task GitUI.Editor.FileViewer.ShowOrDeferAsync(long contentLength, Func<Task> showFunc) in D:/Build/gitextensions3_dev/src/app/GitUI/Editor/FileViewer.cs:line 1102
at async Task GitUI.GitUIExtensions.ViewChangesAsync(FileViewer fileViewer, FileStatusItem item, CancellationToken cancellationToken, int? line, string defaultText, Action openWithDiffTool, string additionalCommandInfo, bool forceFileView) in D:/Build/gitextensions3_dev/src/app/GitUI/GitUIExtensions.cs:line 206
at async Task GitUI.CommandsDialogs.RevisionDiffControl.ShowSelectedFileDiffAsync(bool ensureNoSwitchToFilter, int? line) in D:/Build/gitextensions3_dev/src/app/GitUI/CommandsDialogs/RevisionDiffControl.cs:line 479
at async void GitUI.CommandsDialogs.RevisionDiffControl.ShowSelectedFile(bool ensureNoSwitchToFilter, int? line)+(?) => { } in D:/Build/gitextensions3_dev/src/app/GitUI/CommandsDialogs/RevisionDiffControl.cs:line 494
at async void GitUI.TaskManager.InvokeAndForget(Control control, Func<Task> asyncAction, CancellationToken cancellationToken)+(?) => { } [1] in D:/Build/gitextensions3_dev/src/app/GitExtUtils/GitUI/TaskManager.cs:line 119
at async Task GitUI.TaskManager.HandleExceptionsAsync(Func<Task> asyncAction, Func<Exception, Task> handleExceptionAsync) in D:/Build/gitextensions3_dev/src/app/GitExtUtils/GitUI/TaskManager.cs:line 32Steps to reproduce
??? Copilot running UI integration tests of an unrelated change (for virtual ref context menu)
Did this work in previous version of GitExtensions?
yes
Diagnostics
No response
Source: gitextensions/gitextensions