Skip to content

[NBug] Invoke or BeginInvoke cannot be called on a control until t... #12026

@MarekKnapek

Description

@MarekKnapek

Environment

  • Git Extensions 5.1.0.17965
  • Build f9e558c
  • Git 2.47.0.windows.2
  • Microsoft Windows NT 10.0.20348.0
  • .NET 8.0.10
  • DPI 96dpi (no scaling)
  • Portable: True

Issue description

System.InvalidOperationException: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
   at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   at System.Windows.Forms.Control.BeginInvoke(Delegate method, Object[] args)
   at GitUI.FileStatusList.<OnUICommandsSourceSet>g__UICommands_PostSettings|50_1(Object sender, GitUIPostActionEventArgs e) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusList.cs:line 266
   at GitUI.FileStatusList.<OnUICommandsSourceSet>g__OnUICommandsChanged|50_0(Object sender, GitUICommandsChangedEventArgs e) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusList.cs:line 259
   at GitUI.FileStatusList.OnUICommandsSourceSet(IGitUICommandsSource source) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusList.cs:line 245
   at GitUI.GitModuleControl.set_UICommandsSource(IGitUICommandsSource value) in C:\projects\gitextensions\src\app\GitUI\GitModuleControl.cs:line 68
   at GitUI.GitModuleControl.get_UICommandsSource() in C:\projects\gitextensions\src\app\GitUI\GitModuleControl.cs:line 49
   at GitUI.GitModuleControl.get_UICommands() in C:\projects\gitextensions\src\app\GitUI\GitModuleControl.cs:line 76
   at GitUI.GitModuleControl.get_Module() in C:\projects\gitextensions\src\app\GitUI\GitModuleControl.cs:line 98
   at GitUI.FileStatusList.<.ctor>b__47_1() in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusList.cs:line 113
   at GitUI.FileStatusDiffCalculator.GetModule() in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusDiffCalculator.cs:line 327
   at GitUI.FileStatusDiffCalculator.CalculateDiffs(IReadOnlyList`1 revisions, GitRevision selectedRev, ObjectId headId, Boolean allowMultiDiff, CancellationToken cancellationToken) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusDiffCalculator.cs:line 75
   at GitUI.FileStatusDiffCalculator.Calculate(IReadOnlyList`1 prevList, Boolean refreshDiff, Boolean refreshGrep, CancellationToken cancellationToken) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusDiffCalculator.cs:line 51
   at GitUI.FileStatusList.SetDiffs(IReadOnlyList`1 revisions) in C:\projects\gitextensions\src\app\GitUI\UserControls\FileStatusList.cs:line 833
   at GitUI.UserControls.CommitDiff.SetRevision(ObjectId objectId, String fileToSelect) in C:\projects\gitextensions\src\app\GitUI\UserControls\CommitDiff.cs:line 53
   at GitUI.HelperDialogs.FormCommitDiff..ctor(IGitUICommands commands, ObjectId objectId) in C:\projects\gitextensions\src\app\GitUI\HelperDialogs\FormCommitDiff.cs:line 15
   at GitUI.RevisionGridControl.<>c__DisplayClass165_0.<ViewSelectedRevisions>g__ProvideForm|0() in C:\projects\gitextensions\src\app\GitUI\UserControls\RevisionGrid\RevisionGridControl.cs:line 1845
   at GitUI.GitUICommands.ShowModelessForm(IWin32Window owner, Boolean requiresValidWorkingDir, EventHandler`1 preEvent, EventHandler`1 postEvent, Func`1 provideForm) in C:\projects\gitextensions\src\app\GitUI\GitUICommands.cs:line 270
   at GitUI.RevisionGridControl.ViewSelectedRevisions() in C:\projects\gitextensions\src\app\GitUI\UserControls\RevisionGrid\RevisionGridControl.cs:line 1848
   at GitUI.RevisionGridControl.OnGridViewDoubleClick(Object sender, MouseEventArgs e) in C:\projects\gitextensions\src\app\GitUI\UserControls\RevisionGrid\RevisionGridControl.cs:line 1772
   at System.Windows.Forms.DataGridView.OnMouseDoubleClick(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam)

Steps to reproduce:

  • Get the latest and greatest GitExtensions, portable edition.
  • Get the latest and greatest PortableGit, version git version 2.47.0.windows.2.
  • Open GitExtensions, my repo gets auto-opened.
  • Double click on latest commit.
  • This wild bug report appears.

Steps to reproduce

already described

Did this work in previous version of GitExtensions?

No response

Diagnostics

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions