From fd6de7573cfbfb4b9d8475feb48179c96131b8e4 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Wed, 7 Jan 2026 07:10:07 +0200
Subject: [PATCH 58/58] sdl: Fix connectdlg fields to take effect

Previously connection attempt was always made with
the default value, no matter what user entered.

See RM #1883

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-sdl2/connectdlg.c | 58 ++++++++++++++++--------------------
 client/gui-sdl3/connectdlg.c | 58 ++++++++++++++++--------------------
 2 files changed, 52 insertions(+), 64 deletions(-)

diff --git a/client/gui-sdl2/connectdlg.c b/client/gui-sdl2/connectdlg.c
index f9028e5816..c5cc53ea06 100644
--- a/client/gui-sdl2/connectdlg.c
+++ b/client/gui-sdl2/connectdlg.c
@@ -462,16 +462,14 @@ void popup_connection_dialog(bool lan_scan)
 **************************************************************************/
 static int convert_playername_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    if (pwidget->string_utf8->text != NULL) {
-      sz_strlcpy(user_name, pwidget->string_utf8->text);
-    } else {
-      /* empty input -> restore previous content */
-      copy_chars_to_utf8_str(pwidget->string_utf8, user_name);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sz_strlcpy(user_name, pwidget->string_utf8->text);
+  } else {
+    /* Empty input -> restore previous content */
+    copy_chars_to_utf8_str(pwidget->string_utf8, user_name);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
@@ -482,16 +480,14 @@ static int convert_playername_callback(struct widget *pwidget)
 **************************************************************************/
 static int convert_servername_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    if (pwidget->string_utf8->text != NULL) {
-      sz_strlcpy(server_host, pwidget->string_utf8->text);
-    } else {
-      /* empty input -> restore previous content */
-      copy_chars_to_utf8_str(pwidget->string_utf8, server_host);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sz_strlcpy(server_host, pwidget->string_utf8->text);
+  } else {
+    /* Empty input -> restore previous content */
+    copy_chars_to_utf8_str(pwidget->string_utf8, server_host);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
@@ -502,19 +498,17 @@ static int convert_servername_callback(struct widget *pwidget)
 **************************************************************************/
 static int convert_portnr_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    char port_str[6];
+  char port_str[6];
 
-    if (pwidget->string_utf8->text != NULL) {
-      sscanf(pwidget->string_utf8->text, "%d", &server_port);
-    } else {
-      /* empty input -> restore previous content */
-      fc_snprintf(port_str, sizeof(port_str), "%d", server_port);
-      copy_chars_to_utf8_str(pwidget->string_utf8, port_str);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sscanf(pwidget->string_utf8->text, "%d", &server_port);
+  } else {
+    /* Empty input -> restore previous content */
+    fc_snprintf(port_str, sizeof(port_str), "%d", server_port);
+    copy_chars_to_utf8_str(pwidget->string_utf8, port_str);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
diff --git a/client/gui-sdl3/connectdlg.c b/client/gui-sdl3/connectdlg.c
index 360d6c4ee1..ac5cd36da3 100644
--- a/client/gui-sdl3/connectdlg.c
+++ b/client/gui-sdl3/connectdlg.c
@@ -458,16 +458,14 @@ void popup_connection_dialog(bool lan_scan)
 **************************************************************************/
 static int convert_playername_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    if (pwidget->string_utf8->text != NULL) {
-      sz_strlcpy(user_name, pwidget->string_utf8->text);
-    } else {
-      /* empty input -> restore previous content */
-      copy_chars_to_utf8_str(pwidget->string_utf8, user_name);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sz_strlcpy(user_name, pwidget->string_utf8->text);
+  } else {
+    /* Empty input -> restore previous content */
+    copy_chars_to_utf8_str(pwidget->string_utf8, user_name);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
@@ -478,16 +476,14 @@ static int convert_playername_callback(struct widget *pwidget)
 **************************************************************************/
 static int convert_servername_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    if (pwidget->string_utf8->text != NULL) {
-      sz_strlcpy(server_host, pwidget->string_utf8->text);
-    } else {
-      /* empty input -> restore previous content */
-      copy_chars_to_utf8_str(pwidget->string_utf8, server_host);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sz_strlcpy(server_host, pwidget->string_utf8->text);
+  } else {
+    /* Empty input -> restore previous content */
+    copy_chars_to_utf8_str(pwidget->string_utf8, server_host);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
@@ -498,19 +494,17 @@ static int convert_servername_callback(struct widget *pwidget)
 **************************************************************************/
 static int convert_portnr_callback(struct widget *pwidget)
 {
-  if (PRESSED_EVENT(main_data.event)) {
-    char port_str[6];
+  char port_str[6];
 
-    if (pwidget->string_utf8->text != NULL) {
-      sscanf(pwidget->string_utf8->text, "%d", &server_port);
-    } else {
-      /* empty input -> restore previous content */
-      fc_snprintf(port_str, sizeof(port_str), "%d", server_port);
-      copy_chars_to_utf8_str(pwidget->string_utf8, port_str);
-      widget_redraw(pwidget);
-      widget_mark_dirty(pwidget);
-      flush_dirty();
-    }
+  if (pwidget->string_utf8->text != NULL) {
+    sscanf(pwidget->string_utf8->text, "%d", &server_port);
+  } else {
+    /* Empty input -> restore previous content */
+    fc_snprintf(port_str, sizeof(port_str), "%d", server_port);
+    copy_chars_to_utf8_str(pwidget->string_utf8, port_str);
+    widget_redraw(pwidget);
+    widget_mark_dirty(pwidget);
+    flush_dirty();
   }
 
   return -1;
-- 
2.51.0

