From e6147820660c92f7c26d144e52856f0a66b94e0c Mon Sep 17 00:00:00 2001 From: Darkvater Date: Sat, 18 Nov 2006 17:07:05 +0000 Subject: [PATCH] (svn r7207) -Codechange: Pass the (unchanged) windowpointer to the console window and do it only once. --- console.c | 6 +++--- console.h | 2 +- window.c | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/console.c b/console.c index 6cffe2b6cc..093a575ae7 100644 --- a/console.c +++ b/console.c @@ -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: diff --git a/console.h b/console.h index db00932667..0c74a14bd3 100644 --- a/console.h +++ b/console.h @@ -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); diff --git a/window.c b/window.c index 6774cf8e64..17d4c908f6 100644 --- a/window.c +++ b/window.c @@ -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;