@@ -1012,6 +1012,7 @@ export function getDownloadsList(): DownloadInfo[] {
10121012export const contentManagers = new Map < number , contentManager > ( ) ;
10131013
10141014const findControllers = new Map < number , any > ( ) ;
1015+ const searchControllers = new Map < number , SearchOmniboxController > ( ) ;
10151016
10161017app . whenReady ( ) . then ( ( ) => {
10171018 try {
@@ -1170,6 +1171,14 @@ export function setupWindowIntegration(
11701171 findControllers . set ( win . id , findDialog ) ;
11711172 const dlg = new DialogService ( win ) ;
11721173 const searchDialog = new SearchOmniboxController ( win ) ;
1174+ try {
1175+ searchControllers . set ( win . id , searchDialog ) ;
1176+ win . on ( 'closed' , ( ) => {
1177+ try {
1178+ searchControllers . delete ( win . id ) ;
1179+ } catch { }
1180+ } ) ;
1181+ } catch { }
11731182
11741183 dlg . register ( 'quickmenu' , qm as any ) ;
11751184 dlg . register ( 'downloads' , downloadsDialog as any ) ;
@@ -1296,27 +1305,36 @@ ipcMain.on('reload', (event, id: number) => {
12961305 const cm = getContentManagerFor ( win ) ;
12971306 cm ?. reload ( id ) ;
12981307} ) ;
1308+
1309+ ipcMain . on ( 'stop-loading' , ( event , id : number ) => {
1310+ const win = BrowserWindow . fromWebContents ( event . sender ) ;
1311+ if ( ! win ) return ;
1312+
1313+ const cm : any = getContentManagerFor ( win ) ;
1314+ cm ?. stopLoading ?.( id ) ;
1315+ } ) ;
12991316ipcMain . handle ( 'get-navigation-state' , async ( event , id : number ) => {
13001317 const win = BrowserWindow . fromWebContents ( event . sender ) ;
13011318 if ( ! win ) {
1302- return { canGoBack : false , canGoForward : false } ;
1319+ return { canGoBack : false , canGoForward : false , isLoading : false } ;
13031320 }
13041321
13051322 const cm = getContentManagerFor ( win ) ;
13061323 if ( ! cm ) {
1307- return { canGoBack : false , canGoForward : false } ;
1324+ return { canGoBack : false , canGoForward : false , isLoading : false } ;
13081325 }
13091326
13101327 const view = cm [ 'views' ] ?. get ( id ) ;
13111328 if ( ! view ) {
1312- return { canGoBack : false , canGoForward : false } ;
1329+ return { canGoBack : false , canGoForward : false , isLoading : false } ;
13131330 }
13141331
13151332 const wc : any = __getWC ( view ) ;
13161333 const nav = wc && wc . navigationHistory ;
13171334 return {
13181335 canGoBack : nav && typeof nav . canGoBack === 'function' ? ! ! nav . canGoBack ( ) : false ,
13191336 canGoForward : nav && typeof nav . canGoForward === 'function' ? ! ! nav . canGoForward ( ) : false ,
1337+ isLoading : wc && typeof wc . isLoading === 'function' ? ! ! wc . isLoading ( ) : false ,
13201338 } ;
13211339} ) ;
13221340ipcMain . on ( 'get-current-url-sync' , ( event ) => {
@@ -1480,9 +1498,17 @@ safeHandle('is-bookmarked', async (_event: Electron.IpcMainInvokeEvent, url: str
14801498ipcMain . on ( 'set-default-search-engine' , ( event : Electron . IpcMainEvent , engine : string ) => {
14811499 if ( typeof engine === 'string' && engine . trim ( ) . length > 0 ) {
14821500 setDefaultSearchEngine ( engine ) ;
1501+ const current = getDefaultSearchEngine ( ) ;
14831502 BrowserWindow . getAllWindows ( ) . forEach ( ( w ) => {
1484- __getWC ( w ) . send ( 'search-engine-changed' , getDefaultSearchEngine ( ) ) ;
1503+ __getWC ( w ) . send ( 'search-engine-changed' , current ) ;
14851504 } ) ;
1505+ try {
1506+ searchControllers . forEach ( ( ctrl ) => {
1507+ try {
1508+ ctrl . send ( 'search-engine-changed' , current ) ;
1509+ } catch { }
1510+ } ) ;
1511+ } catch { }
14861512 }
14871513} ) ;
14881514
0 commit comments