(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
--- 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);
}