summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--console.c6
-rw-r--r--console.h2
-rw-r--r--window.c10
3 files changed, 11 insertions, 7 deletions
diff --git a/console.c b/console.c
index 6cffe2b6c..093a575ae 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 db0093266..0c74a14bd 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 6774cf8e6..17d4c908f 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;