1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Fixed setFocus for some ShowPCLocation and ShowSourceFile cases

This commit is contained in:
Brian Fiete 2024-12-29 07:14:30 -08:00
parent d5024964c8
commit cac67b8288
2 changed files with 27 additions and 6 deletions

View file

@ -907,6 +907,9 @@ namespace Beefy.widgets
{ {
base.KeyDown(keyCode, isRepeat); base.KeyDown(keyCode, isRepeat);
if (mWidgetWindow == null)
return;
switch (keyCode) switch (keyCode)
{ {
case (KeyCode)'A': case (KeyCode)'A':

View file

@ -6612,18 +6612,30 @@ namespace IDE
return tabButton; return tabButton;
} }
public DisassemblyPanel ShowDisassemblyPanel(bool clearData = false) public DisassemblyPanel ShowDisassemblyPanel(bool clearData = false, bool setFocus = false)
{ {
DisassemblyPanel disassemblyPanel = null; DisassemblyPanel disassemblyPanel = null;
TabbedView.TabButton disassemblyTab = null;
WithTabs(scope [&] (tab) => WithTabs(scope [&] (tab) =>
{ {
if ((disassemblyPanel == null) && (tab.mContent is DisassemblyPanel)) if ((disassemblyPanel == null) && (tab.mContent is DisassemblyPanel))
{ {
disassemblyTab = tab;
disassemblyPanel = (DisassemblyPanel)tab.mContent; disassemblyPanel = (DisassemblyPanel)tab.mContent;
disassemblyPanel.ClearQueuedData();
tab.Activate();
} }
}); });
if (disassemblyTab != null)
{
var window = disassemblyTab.mWidgetWindow;
if ((setFocus) && (window != null) && (!HasModalDialogs()) && (!mRunningTestScript))
window.SetForeground();
}
disassemblyPanel.ClearQueuedData();
disassemblyTab.Activate();
if (disassemblyPanel != null) if (disassemblyPanel != null)
return disassemblyPanel; return disassemblyPanel;
@ -7149,6 +7161,12 @@ namespace IDE
} }
} }
void ActivateWindow(WidgetWindow window)
{
if ((setFocus) && (window != null) && (!HasModalDialogs()) && (!mRunningTestScript))
window.SetForeground();
}
if (showType != SourceShowType.New) if (showType != SourceShowType.New)
{ {
delegate void(TabbedView.TabButton) tabFunc = scope [&] (tabButton) => delegate void(TabbedView.TabButton) tabFunc = scope [&] (tabButton) =>
@ -7197,8 +7215,7 @@ namespace IDE
//sourceViewPanel.QueueFullRefresh(true); //sourceViewPanel.QueueFullRefresh(true);
} }
if ((sourceViewPanel.mWidgetWindow != null) && (!HasModalDialogs()) && (!mRunningTestScript)) ActivateWindow(sourceViewPanelTab.mWidgetWindow);
sourceViewPanel.mWidgetWindow.SetForeground();
sourceViewPanelTab.Activate(setFocus); sourceViewPanelTab.Activate(setFocus);
sourceViewPanelTab.mTabbedView.FinishTabAnim(); sourceViewPanelTab.mTabbedView.FinishTabAnim();
if (setFocus) if (setFocus)
@ -7214,6 +7231,7 @@ namespace IDE
//ShowSourceFile(filePath, projectSource, showTemp, setFocus); //ShowSourceFile(filePath, projectSource, showTemp, setFocus);
DarkTabbedView tabbedView = GetDefaultDocumentTabbedView(); DarkTabbedView tabbedView = GetDefaultDocumentTabbedView();
ActivateWindow(tabbedView.mWidgetWindow);
sourceViewPanel = new SourceViewPanel(); sourceViewPanel = new SourceViewPanel();
bool success; bool success;
if (useProjectSource != null) if (useProjectSource != null)
@ -7977,7 +7995,7 @@ namespace IDE
} }
else else
{ {
var disassemblyPanel = ShowDisassemblyPanel(true); var disassemblyPanel = ShowDisassemblyPanel(true, setFocus);
if (aliasFilePath != null) if (aliasFilePath != null)
String.NewOrSet!(disassemblyPanel.mAliasFilePath, aliasFilePath); String.NewOrSet!(disassemblyPanel.mAliasFilePath, aliasFilePath);
disassemblyPanel.Show(addr, filePath, line, column, hotIdx, defLineStart, defLineEnd); disassemblyPanel.Show(addr, filePath, line, column, hotIdx, defLineStart, defLineEnd);