diff --git a/AGK/AgkIde/Gui.cpp b/AGK/AgkIde/Gui.cpp index 9f8fc84f..9d0da995 100644 --- a/AGK/AgkIde/Gui.cpp +++ b/AGK/AgkIde/Gui.cpp @@ -350,7 +350,7 @@ void ProcessPreferences(void) { pref.iRememberTabOrder = bTmp; if (ImGui::IsItemHovered()) ImGui::SetTooltip("Will remember the order of Visible tabs.\nNon-visible tabs will be in a-z order."); -#ifdef AGK_WINDOWS +#if defined(AGK_WINDOWS) || defined(AGK_LINUX) bTmp = pref.bBrowserHelp; ImGui::Checkbox("Enable F1 Browser Help", &bTmp); pref.bBrowserHelp = bTmp; diff --git a/AGK/AgkIde/TextEditor.cpp b/AGK/AgkIde/TextEditor.cpp index 8ab99abc..f2a1b324 100644 --- a/AGK/AgkIde/TextEditor.cpp +++ b/AGK/AgkIde/TextEditor.cpp @@ -933,7 +933,8 @@ void TextEditor::Help( void ) } } - if (strlen(cHelp) < 2) + bool bNoCommandHelp = strlen(cHelp) < 2; + if (bNoCommandHelp && !pref.bBrowserHelp) return; //Try to find help. @@ -941,10 +942,21 @@ void TextEditor::Help( void ) #ifdef AGK_WINDOWS _getcwd(&curDir[0], MAX_PATH); +#elif defined(AGK_LINUX) + strcpy(curDir, "file://"); + getcwd(&curDir[7], MAX_PATH - 7); #else getcwd(&curDir[0], MAX_PATH); #endif + if (bNoCommandHelp) + { + strcat(curDir, "/media/Help/home.html"); + + agk::OpenBrowser(curDir); + return; + } + int index = tolower( char(cHelp[0]) ); uString usHelp = cHelp; usHelp.Lower(); @@ -958,19 +970,19 @@ void TextEditor::Help( void ) if (sKeyNext->m_cCommandPath.GetLength() > 0 ) { //built in help - if (pref.bBrowserHelp == false) { + if (!pref.bBrowserHelp) { processhelp((char*)sKeyNext->m_cCommandPath.GetStr(), true); ImGui::SetWindowFocus(ICON_MD_HELP " Help"); } //browser help else { - strcat(curDir, "\\"); + strcat(curDir, "/"); strcat(curDir, (char*)sKeyNext->m_cCommandPath.GetStr()); agk::OpenBrowser(curDir); } - break; + return; } } sKeyNext = sKeyNext->m_pNext; @@ -978,6 +990,12 @@ void TextEditor::Help( void ) } + if (pref.bBrowserHelp) //failed to find command; use home fallback for browser help + { + strcat(curDir, "/media/Help/home.html"); + agk::OpenBrowser(curDir); + } + return; }