(svn r7207) -Codechange: Pass the (unchanged) windowpointer to the console window and do it only once.
authorDarkvater
Sat, 18 Nov 2006 17:07:05 +0000
changeset 5126 9084bb06e52e
parent 5125 d1331d6dbdcb
child 5127 44b74d23fab1
(svn r7207) -Codechange: Pass the (unchanged) windowpointer to the console window and do it only once.
console.c
console.h
window.c
--- 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;