diff --git a/main_gui.c b/main_gui.c index 4b2580f540..3dfff92f9f 100644 --- a/main_gui.c +++ b/main_gui.c @@ -1911,8 +1911,8 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) case 'A': ShowBuildRailToolbar(_last_built_railtype, 4); break; /* Invoke Autorail */ case 'L': ShowTerraformToolbar(); break; default: return; - e->keypress.cont = false; } + e->keypress.cont = false; } break; case WE_PLACE_OBJ: { @@ -2397,14 +2397,14 @@ void SetupColorsAndInitialWindow(void) // XXX: these are not done switch(_game_mode) { case GM_MENU: - w = AllocateWindow(0, 0, width, height, MainWindowWndProc, 0, NULL); + w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL); AssignWindowViewport(w, 0, 0, width, height, TILE_XY(32, 32), 0); // w = AllocateWindowDesc(&_toolb_intro_desc); // w->flags4 &= ~WF_WHITE_BORDER_MASK; ShowSelectGameWindow(); break; case GM_NORMAL: - w = AllocateWindow(0, 0, width, height, MainWindowWndProc, 0, NULL); + w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL); AssignWindowViewport(w, 0, 0, width, height, TILE_XY(32, 32), 0); ShowVitalWindows(); @@ -2415,7 +2415,7 @@ void SetupColorsAndInitialWindow(void) break; case GM_EDITOR: - w = AllocateWindow(0, 0, width, height, MainWindowWndProc, 0, NULL); + w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL); AssignWindowViewport(w, 0, 0, width, height, 0, 0); w = AllocateWindowDesc(&_toolb_scen_desc); diff --git a/window.c b/window.c index 58bbf368d5..b9d46a53a1 100644 --- a/window.c +++ b/window.c @@ -1266,19 +1266,22 @@ static void HandleKeypress(uint32 key) we.keypress.cont = true; // check if we have a query string window open before allowing hotkeys - if(FindWindowById(WC_QUERY_STRING, 0)!=NULL || FindWindowById(WC_SEND_NETWORK_MSG, 0)!=NULL) + if(FindWindowById(WC_QUERY_STRING, 0)!=NULL || FindWindowById(WC_SEND_NETWORK_MSG, 0)!=NULL || FindWindowById(WC_CONSOLE, 0)!=NULL) query_open = true; // Call the event, start with the uppermost window. for(w=_last_window; w != _windows;) { --w; // if a query window is open, only call the event for certain window types - if(query_open && w->window_class!=WC_QUERY_STRING && w->window_class!=WC_SEND_NETWORK_MSG && w->window_class!=WC_MAIN_TOOLBAR) + if(query_open && w->window_class!=WC_QUERY_STRING && w->window_class!=WC_SEND_NETWORK_MSG && w->window_class!=WC_CONSOLE) continue; w->wndproc(w, &we); if (!we.keypress.cont) break; } + + if (we.keypress.cont) + FindWindowById(WC_MAIN_TOOLBAR, 0)->wndproc(w, &we); } extern void UpdateTileSelection(void);