(svn r4605) -Backported revisions 4304, 4309, 4310, 4312, 4313, 4314 from trunk (chatbox-related stuff) 0.4
authorcelestar
Fri, 28 Apr 2006 07:45:44 +0000
branch0.4
changeset 9969 491cdd3d2b74
parent 9968 28bbce9610f4
child 9970 c0c5699f138a
(svn r4605) -Backported revisions 4304, 4309, 4310, 4312, 4313, 4314 from trunk (chatbox-related stuff)
-The chat box' parent window (the main toolbar, wtf?) doesn't care for the WE_ON_EDIT_TEXT_CANCEL event, so don't send one. This code looks like it was mindlessly copy&pasted from the query box
-The initial string of the chat box is always the empty string, so don't jump through hoops to check if nothing was entered and simplify the code
-The chat box has no visible window title, therefore remove the string
-Calculate the maximum pixel width of the entered text in the chat box from the "text box"-widget instead of hardcoding an arbitrary - and wrong - number
-The parent window of the chat box is always the main toolbar (?!), therefore don't pass this information as parameter
-a buffer overflow of the chat box introduced in r1263. Don't tell the Textbuf an arbitrary number as size of the string buffer, but the real lengthof() it
gui.h
lang/american.txt
lang/brazilian_portuguese.txt
lang/catalan.txt
lang/czech.txt
lang/danish.txt
lang/dutch.txt
lang/english.txt
lang/estonian.txt
lang/finnish.txt
lang/french.txt
lang/galician.txt
lang/german.txt
lang/hungarian.txt
lang/icelandic.txt
lang/italian.txt
lang/norwegian.txt
lang/polish.txt
lang/portuguese.txt
lang/romanian.txt
lang/slovak.txt
lang/spanish.txt
lang/swedish.txt
lang/turkish.txt
lang/unfinished/lithuanian.txt
main_gui.c
network_gui.c
--- a/gui.h	Fri Mar 31 16:19:16 2006 +0000
+++ b/gui.h	Fri Apr 28 07:45:44 2006 +0000
@@ -123,7 +123,7 @@
 
 /* network gui */
 void ShowNetworkGameWindow(void);
-void ShowChatWindow(StringID str, StringID caption, int maxlen, int maxwidth, WindowClass window_class, WindowNumber window_number);
+void ShowChatWindow(void);
 
 /* bridge_gui.c */
 void ShowBuildBridgeWindow(uint start, uint end, byte type);
--- a/lang/american.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/american.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Disconnect
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Enter your text message to send
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Enter the amount of money you want to give
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server is protected. Enter password
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Company is protected. Enter password
--- a/lang/brazilian_portuguese.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/brazilian_portuguese.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1298,7 +1298,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Desconectar
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Digite a mensagem de texto a enviar
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Digite o valor do dinheiro que pretende dar
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Servidor protegido. Digite a senha
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Companhia protegida. Digite a senha
--- a/lang/catalan.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/catalan.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1297,7 +1297,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Desconnecta
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Entra el text del missatge a enviar
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Entra la quantitat de diners que vols obtenir
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Servidor protegit. Entra la contrasenya
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Empresa protegida. Entra la contrasenya
--- a/lang/czech.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/czech.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1354,7 +1354,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Odpojit se
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Napi¨ zprávu, kterou chce¨ poslat
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Napi¨ castku, kterou chce¨ poskytnout
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server je chraneny. Napi¨ heslo
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Spolecnost je chranena. Napi¨ heslo
--- a/lang/danish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/danish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1311,7 +1311,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Afbryd forbindelse
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Skrive den tekst, som du vil sende
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Skriv det belřb, som du řnsker at give
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Serveren er beskyttet. Skriv kodeordet
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Virksomheden er beskyttet. Skriv kodeordet
--- a/lang/dutch.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/dutch.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Verbinding verbroken
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Voer het te versturen bericht in
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Voer het geldbedrag dat je wilt geven in
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server is beveiligd. Voer wachtwoord in.
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Bedrijf is beveiligd. Voer wachtwoord in.
--- a/lang/english.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/english.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Disconnect
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Enter your text message to send
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Enter the amount of money you want to give
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server is protected. Enter password
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Company is protected. Enter password
--- a/lang/estonian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/estonian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1294,7 +1294,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Katkesta
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Sőnumi kirjutamine saatmiseks teistele mängijatele
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Teisele mängijale saadetava rahasumma sisestamine
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server on kaitstud. Sisesta parool
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Ettevőte on kaitstud. Sisesta parool
--- a/lang/finnish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/finnish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1312,7 +1312,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Pura yhteys
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Syötä lähetettävä teksti
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Syötä annettava rahamäärä
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Palvelin on suojattu. Anna salasana
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Yhtiö on suojattu. Anna salasana
--- a/lang/french.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/french.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1314,7 +1314,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Déconnecter
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Saisir le message ŕ envoyer
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Saisir le montant d'argent que vous désirez transférer
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Le serveur est protégé. Entrez le mot de passe
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}La compagnie est protégée. Entrez le mot de passe
--- a/lang/galician.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/galician.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1283,7 +1283,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Desconectar
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Introduce o texto a enviar
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Introduce a cantidade de dińeiro a dar
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}O servidor está protexido. Introduce clave
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}A comańía está protexida. Introduce clave
--- a/lang/german.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/german.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1314,7 +1314,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Trennen
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Gib deine Nachricht ein
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Gib an, wieviel Geld du geben möchtest
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server ist geschützt. Gib das Passwort ein
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Firma ist geschützt! Passwort eingeben
--- a/lang/hungarian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/hungarian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1378,7 +1378,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Lebontás
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Írd be az elküldendő üzenetet
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Írd be mennyi pénzt akarsz adományozni
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}A szerver jelszóval van védve. Írd be
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}A cég jelszóval van védve. Írd be
--- a/lang/icelandic.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/icelandic.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1298,7 +1298,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Aftengjast
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Sláđu inn skilabođ til ađ senda
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Sláđu inn upphćđ fjár sem ţú villt gefa
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Ţjónn er varinn. Sláđu inn lykilorđ
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Fyrirtćki er variđ. Sláđu inn lykilorđ
--- a/lang/italian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/italian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Disconnessione
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Inserisci il messaggio di testo da inviare
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Inserisci l'ammontare di denaro che vuoi donare
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server protetto. Inserisci la password
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Compagnia protetta. Inserisci la password
--- a/lang/norwegian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/norwegian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1296,7 +1296,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Koble fra
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Skriv inn teksten du vil sende
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Skriv inn hvor mange penger du vil gi
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Tjeneren er beskyttet. Skriv inn passord
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Firmaet er beskyttet. Skriv inn passord
--- a/lang/polish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/polish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Rozlaczony
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Wprowadz tekst do wyslania
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Wprowadz ilosc pieniedzy jaka chcesz przekazac
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Serwer jest chroniony. Wprowadz haslo
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Firma jest chroniona. Wprowadz haslo
--- a/lang/portuguese.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/portuguese.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1298,7 +1298,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Desligar
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Introduza a mensagem de texto a enviar
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Introduza o valor do dinheiro que pretende dar
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Servidor protegido. Introduza palavra-chave
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Companhia protegida. Introduza palavra-chave
--- a/lang/romanian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/romanian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1298,7 +1298,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Deconectare
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Introdu textul de trimis
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Introdu suma de bani pe care vrei sa o cedezi
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server protejat. Introdu parola
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Companie protejata. Introdu parola
--- a/lang/slovak.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/slovak.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1304,7 +1304,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Odpojit sa
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Napis spravu, ktoru chces poslat
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Napis sumu, ktoru chces poskytnut
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Server je chraneny. Napis heslo
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Spolocnost je chranena. Napis heslo
--- a/lang/spanish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/spanish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1298,7 +1298,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Desconectado
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Teclee el mensaje de texto a enviar
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Introduce la cantidad de dinero que desea dar
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Servidor protegido. Teclee la contraseńa
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Empresa protegida. Introduce contraseńa
--- a/lang/swedish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/swedish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Frĺnkopplad
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Ange meddelandet du vill skicka
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Ange beloppet du vill ge
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Servern är skyddad. Ange lösenord
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Företaget är skyddat. Ange lösenord
--- a/lang/turkish.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/turkish.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1313,7 +1313,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Baglantiyi kes
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Göndereceginiz mesaji girin
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Vereceginiz para miktarini girin
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Sunucu korumali. Parola girin
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Sirket korumali. Parola girin
--- a/lang/unfinished/lithuanian.txt	Fri Mar 31 16:19:16 2006 +0000
+++ b/lang/unfinished/lithuanian.txt	Fri Apr 28 07:45:44 2006 +0000
@@ -1248,7 +1248,6 @@
 
 STR_NETWORK_DISCONNECT                                          :{BLACK}Atsijungti
 
-STR_NETWORK_CHAT_QUERY_CAPTION                                  :{WHITE}Ivesk teksta kuri nori siusti
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Ivesk pinigu kieki kuri nori duoti
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Serveris apsaugotas. Ivesk slaptazodi
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Kompanija apsaugota. Ivesk slaptazodi
--- a/main_gui.c	Fri Mar 31 16:19:16 2006 +0000
+++ b/main_gui.c	Fri Apr 28 07:45:44 2006 +0000
@@ -331,7 +331,7 @@
 {
 	_rename_id = desttype + (dest << 8);
 	_rename_what = 2;
-	ShowChatWindow(STR_EMPTY, STR_NETWORK_CHAT_QUERY_CAPTION, 150, 338, 1, 0);
+	ShowChatWindow();
 }
 
 void ShowNetworkGiveMoneyWindow(byte player)
--- a/network_gui.c	Fri Mar 31 16:19:16 2006 +0000
+++ b/network_gui.c	Fri Apr 28 07:45:44 2006 +0000
@@ -51,7 +51,7 @@
 /* Global to remember sorting after window has been closed */
 static NetworkGameSorting _ng_sorting;
 
-static char _edit_str_buf[MAX_QUERYSTR_LEN*2];
+static char _edit_str_buf[MAX_QUERYSTR_LEN];
 static void ShowNetworkStartServerWindow(void);
 static void ShowNetworkLobbyWindow(NetworkGameList *ngl);
 
@@ -1463,19 +1463,13 @@
 }
 
 
-
-#define MAX_QUERYSTR_LEN 64
-
 /* uses querystr_d WP macro */
 static void ChatWindowWndProc(Window *w, WindowEvent *e)
 {
-	static bool closed = false;
-
 	switch (e->event) {
 	case WE_CREATE:
 		SendWindowMessage(WC_NEWS_WINDOW, 0, WE_CREATE, w->height, 0);
 		SETBIT(_no_scroll, SCROLL_CHAT); // do not scroll the game with the arrow-keys
-		closed = false;
 		break;
 
 	case WE_PAINT:
@@ -1488,7 +1482,7 @@
 		case 3: DeleteWindow(w); break; // Cancel
 		case 2: // Send
 press_ok:;
-			if (strcmp(WP(w, querystr_d).text.buf, WP(w, querystr_d).text.buf + MAX_QUERYSTR_LEN) == 0) {
+			if (WP(w, querystr_d).text.buf[0] == '\0') {
 				DeleteWindow(w);
 			} else {
 				char *buf = WP(w, querystr_d).text.buf;
@@ -1496,9 +1490,6 @@
 				WindowNumber wnd_num = WP(w, querystr_d).wnd_num;
 				Window *parent;
 
-				// Mask the edit-box as closed, so we don't send out a CANCEL
-				closed = true;
-
 				DeleteWindow(w);
 
 				parent = FindWindowById(wnd_class, wnd_num);
@@ -1534,15 +1525,6 @@
 	case WE_DESTROY:
 		SendWindowMessage(WC_NEWS_WINDOW, 0, WE_DESTROY, 0, 0);
 		CLRBIT(_no_scroll, SCROLL_CHAT);
-		// If the window is not closed yet, it means it still needs to send a CANCEL
-		if (!closed) {
-			Window *parent = FindWindowById(WP(w,querystr_d).wnd_class, WP(w,querystr_d).wnd_num);
-			if (parent != NULL) {
-				WindowEvent e;
-				e.event = WE_ON_EDIT_TEXT_CANCEL;
-				parent->wndproc(parent, &e);
-			}
-		}
 		break;
 	}
 }
@@ -1563,29 +1545,23 @@
 	ChatWindowWndProc
 };
 
-void ShowChatWindow(StringID str, StringID caption, int maxlen, int maxwidth, WindowClass window_class, WindowNumber window_number)
+void ShowChatWindow(void)
 {
 	Window *w;
 
-#define _orig_edit_str_buf (_edit_str_buf+MAX_QUERYSTR_LEN)
-
 	DeleteWindowById(WC_SEND_NETWORK_MSG, 0);
 
-	GetString(_orig_edit_str_buf, str);
-
-	_orig_edit_str_buf[maxlen] = '\0';
-
-	memcpy(_edit_str_buf, _orig_edit_str_buf, MAX_QUERYSTR_LEN);
+	_edit_str_buf[0] = '\0';
 
 	w = AllocateWindowDesc(&_chat_window_desc);
 
 	w->click_state = 1 << 1;
-	WP(w,querystr_d).caption = caption;
-	WP(w,querystr_d).wnd_class = window_class;
-	WP(w,querystr_d).wnd_num = window_number;
+	WP(w,querystr_d).caption = STR_NULL;
+	WP(w,querystr_d).wnd_class = WC_MAIN_TOOLBAR;
+	WP(w,querystr_d).wnd_num = 0;
 	WP(w,querystr_d).text.caret = false;
-	WP(w,querystr_d).text.maxlength = maxlen - 1;
-	WP(w,querystr_d).text.maxwidth = maxwidth;
+	WP(w,querystr_d).text.maxlength = lengthof(_edit_str_buf);
+	WP(w,querystr_d).text.maxwidth = w->widget[1].right - w->widget[1].left - 2; // widget[1] is the "text box"
 	WP(w,querystr_d).text.buf = _edit_str_buf;
 	UpdateTextBufferSize(&WP(w, querystr_d).text);
 }