diff options
-rw-r--r-- | console.c | 6 | ||||
-rw-r--r-- | console.h | 2 | ||||
-rw-r--r-- | window.c | 10 |
3 files changed, 11 insertions, 7 deletions
@@ -152,7 +152,7 @@ static void IConsoleWndProc(Window *w, WindowEvent *e) break; case WKC_CTRL | WKC_RETURN: _iconsole_mode = (_iconsole_mode == ICONSOLE_FULL) ? ICONSOLE_OPENED : ICONSOLE_FULL; - IConsoleResize(); + IConsoleResize(w); MarkWholeScreenDirty(); break; case (WKC_CTRL | 'V'): @@ -283,9 +283,9 @@ void IConsoleFree(void) CloseConsoleLogIfActive(); } -void IConsoleResize(void) +void IConsoleResize(Window *w) { - _iconsole_win = FindWindowById(WC_CONSOLE, 0); + assert(_iconsole_win == w); switch (_iconsole_mode) { case ICONSOLE_OPENED: @@ -118,7 +118,7 @@ VARDEF IConsoleModes _iconsole_mode; void IConsoleInit(void); void IConsoleFree(void); void IConsoleClearBuffer(void); -void IConsoleResize(void); +void IConsoleResize(Window *w); void IConsoleSwitch(void); void IConsoleClose(void); void IConsoleOpen(void); @@ -20,7 +20,7 @@ static Point _drag_delta; static Window _windows[25]; Window *_z_windows[lengthof(_windows)]; -Window **_last_z_window; // always points to the next free space in the z-array +Window **_last_z_window; ///< always points to the next free space in the z-array void CDECL SetWindowWidgetsDisabledState(Window *w, bool disab_stat, int widgets, ...) { @@ -1886,8 +1886,8 @@ void RelocateAllWindows(int neww, int newh) continue; // don't modify top,left } - IConsoleResize(); - + /* XXX - this probably needs something more sane. For example specying + * in a 'backup'-desc that the window should always be centred. */ switch (w->window_class) { case WC_MAIN_TOOLBAR: top = w->top; @@ -1916,6 +1916,10 @@ void RelocateAllWindows(int neww, int newh) left = (neww - w->width) >> 1; break; + case WC_CONSOLE: + IConsoleResize(w); + break; + default: left = w->left; if (left + (w->width >> 1) >= neww) left = neww - w->width; |