diff --git a/src/renderer/components/layout/__tests__/topbar.test.tsx b/src/renderer/components/layout/__tests__/topbar.test.tsx index 499a52bc66..db71135658 100644 --- a/src/renderer/components/layout/__tests__/topbar.test.tsx +++ b/src/renderer/components/layout/__tests__/topbar.test.tsx @@ -50,11 +50,12 @@ const goForward = jest.fn(); jest.mock("@electron/remote", () => { return { webContents: { - getFocusedWebContents: () => { - return { + getAllWebContents: () => { + return [{ + getType: () => "window", goBack, goForward - }; + }]; } } }; diff --git a/src/renderer/components/layout/topbar.tsx b/src/renderer/components/layout/topbar.tsx index 2b1c49267a..404a4fec7d 100644 --- a/src/renderer/components/layout/topbar.tsx +++ b/src/renderer/components/layout/topbar.tsx @@ -69,11 +69,11 @@ export const TopBar = observer(({ children, ...rest }: Props) => { }; const goBack = () => { - webContents.getFocusedWebContents()?.goBack(); + webContents.getAllWebContents().find((webContent) => webContent.getType() === "window")?.goBack(); }; const goForward = () => { - webContents.getFocusedWebContents()?.goForward(); + webContents.getAllWebContents().find((webContent) => webContent.getType() === "window")?.goForward(); }; useEffect(() => { diff --git a/src/renderer/remote-helpers/history-updater.ts b/src/renderer/remote-helpers/history-updater.ts index 3a8c9bfc04..77f26496dc 100644 --- a/src/renderer/remote-helpers/history-updater.ts +++ b/src/renderer/remote-helpers/history-updater.ts @@ -26,7 +26,25 @@ import { navigation } from "../navigation"; export function watchHistoryState() { return reaction(() => navigation.location, () => { - broadcastMessage("history:can-go-back", webContents.getFocusedWebContents()?.canGoBack()); - broadcastMessage("history:can-go-forward", webContents.getFocusedWebContents()?.canGoForward()); + const getAllWebContents = webContents.getAllWebContents(); + + const canGoBack = getAllWebContents.some((webContent) => { + if (webContent.getType() === "window") { + return webContent.canGoBack(); + } + + return false; + }); + + const canGoForward = getAllWebContents.some((webContent) => { + if (webContent.getType() === "window") { + return webContent.canGoForward(); + } + + return false; + }); + + broadcastMessage("history:can-go-back", canGoBack); + broadcastMessage("history:can-go-forward", canGoForward); }); }