(svn r7207) -Codechange: Pass the (unchanged) windowpointer to the console window and do it only once.
--- a/console.c Sat Nov 18 17:04:44 2006 +0000
+++ b/console.c Sat Nov 18 17:07:05 2006 +0000
@@ -152,7 +152,7 @@
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 @@
CloseConsoleLogIfActive();
}
-void IConsoleResize(void)
+void IConsoleResize(Window *w)
{
- _iconsole_win = FindWindowById(WC_CONSOLE, 0);
+ assert(_iconsole_win == w);
switch (_iconsole_mode) {
case ICONSOLE_OPENED:
--- a/console.h Sat Nov 18 17:04:44 2006 +0000
+++ b/console.h Sat Nov 18 17:07:05 2006 +0000
@@ -118,7 +118,7 @@
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);
--- a/window.c Sat Nov 18 17:04:44 2006 +0000
+++ b/window.c Sat Nov 18 17:07:05 2006 +0000
@@ -20,7 +20,7 @@
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 @@
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 @@
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;