From fcc1ab205c7e0865f9a1e90b9f657360ae384009 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 8 Aug 2026 15:53:19 +0300
Subject: [PATCH 46/46] gtk: Correct texts on Strike Building selection dialog

See RM #267

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-gtk-3.22/action_dialog.c | 31 ++++++++++++++++++++---------
 client/gui-gtk-4.0/action_dialog.c  | 28 ++++++++++++++++++--------
 client/gui-gtk-5.0/action_dialog.c  | 28 ++++++++++++++++++--------
 3 files changed, 62 insertions(+), 25 deletions(-)

diff --git a/client/gui-gtk-3.22/action_dialog.c b/client/gui-gtk-3.22/action_dialog.c
index ca8b9e5ced..25c2cdccc8 100644
--- a/client/gui-gtk-3.22/action_dialog.c
+++ b/client/gui-gtk-3.22/action_dialog.c
@@ -824,7 +824,7 @@ static void spy_improvements_callback(GtkTreeSelection *select, gpointer data)
 }
 
 /**********************************************************************//**
-  Creates spy's building sabotaging dialog
+  Creates building destruction dialog
 **************************************************************************/
 static void create_improvements_list(struct player *pplayer,
 				     struct city *pcity,
@@ -835,22 +835,35 @@ static void create_improvements_list(struct player *pplayer,
   GtkCellRenderer *rend;
   GtkTreeViewColumn *col;
   GtkTreeIter it;
-
+  struct action *paction = action_by_number(args->act_id);
   struct unit *actor_unit = game_unit_by_number(args->actor_unit_id);
 
-  spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
-                                                   NULL, 0,
-                                                   _("_Cancel"), GTK_RESPONSE_CANCEL,
-                                                   _("_Sabotage"), GTK_RESPONSE_ACCEPT,
-                                                   NULL);
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Strike Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Strike"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  } else {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Sabotage"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  }
   setup_dialog(spy_sabotage_shell, toplevel);
   gtk_window_set_position(GTK_WINDOW(spy_sabotage_shell), GTK_WIN_POS_MOUSE);
 
   gtk_dialog_set_default_response(GTK_DIALOG(spy_sabotage_shell),
 				  GTK_RESPONSE_ACCEPT);
 
-  label = gtk_frame_new(_("Select Improvement to Sabotage"));
-  gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(spy_sabotage_shell))), label);
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    label = gtk_frame_new(_("Select Improvement to Strike"));
+  } else {
+    label = gtk_frame_new(_("Select Improvement to Sabotage"));
+  }
+  gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(spy_sabotage_shell))),
+                    label);
 
   vbox = gtk_grid_new();
   gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox),
diff --git a/client/gui-gtk-4.0/action_dialog.c b/client/gui-gtk-4.0/action_dialog.c
index b5ea2df022..1704418f14 100644
--- a/client/gui-gtk-4.0/action_dialog.c
+++ b/client/gui-gtk-4.0/action_dialog.c
@@ -822,7 +822,7 @@ static void spy_improvements_callback(GtkTreeSelection *select, gpointer data)
 }
 
 /**********************************************************************//**
-  Creates spy's building sabotaging dialog
+  Creates building destruction dialog
 **************************************************************************/
 static void create_improvements_list(struct player *pplayer,
                                      struct city *pcity,
@@ -833,20 +833,32 @@ static void create_improvements_list(struct player *pplayer,
   GtkCellRenderer *rend;
   GtkTreeViewColumn *col;
   GtkTreeIter it;
-
+  struct action *paction = action_by_number(args->act_id);
   struct unit *actor_unit = game_unit_by_number(args->actor_unit_id);
 
-  spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
-                                                   NULL, 0,
-                                                   _("_Cancel"), GTK_RESPONSE_CANCEL,
-                                                   _("_Sabotage"), GTK_RESPONSE_ACCEPT,
-                                                   NULL);
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Strike Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Strike"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  } else {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Sabotage"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  }
   setup_dialog(spy_sabotage_shell, toplevel);
 
   gtk_dialog_set_default_response(GTK_DIALOG(spy_sabotage_shell),
                                   GTK_RESPONSE_ACCEPT);
 
-  frame = gtk_frame_new(_("Select Improvement to Sabotage"));
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    frame = gtk_frame_new(_("Select Improvement to Strike"));
+  } else {
+    frame = gtk_frame_new(_("Select Improvement to Sabotage"));
+  }
   gtk_box_append(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(spy_sabotage_shell))), frame);
 
   vgrid = gtk_grid_new();
diff --git a/client/gui-gtk-5.0/action_dialog.c b/client/gui-gtk-5.0/action_dialog.c
index 8d5beacf17..393a8ca2c1 100644
--- a/client/gui-gtk-5.0/action_dialog.c
+++ b/client/gui-gtk-5.0/action_dialog.c
@@ -910,7 +910,7 @@ static void spy_improvements_callback(GtkSelectionModel *self,
 }
 
 /**********************************************************************//**
-  Creates spy's building sabotaging dialog
+  Creates building destruction dialog
 **************************************************************************/
 static void create_improvements_list(struct player *pplayer,
                                      struct city *pcity,
@@ -922,20 +922,32 @@ static void create_improvements_list(struct player *pplayer,
   GtkColumnViewColumn *column;
   GtkListItemFactory *factory;
   GtkSingleSelection *selection;
-
+  struct action *paction = action_by_number(args->act_id);
   struct unit *actor_unit = game_unit_by_number(args->actor_unit_id);
 
-  spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
-                                                   NULL, 0,
-                                                   _("_Cancel"), GTK_RESPONSE_CANCEL,
-                                                   _("_Sabotage"), GTK_RESPONSE_ACCEPT,
-                                                   NULL);
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Strike Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Strike"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  } else {
+    spy_sabotage_shell = gtk_dialog_new_with_buttons(_("Sabotage Improvements"),
+                                                     NULL, 0,
+                                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                                     _("_Sabotage"), GTK_RESPONSE_ACCEPT,
+                                                     NULL);
+  }
   setup_dialog(spy_sabotage_shell, toplevel);
 
   gtk_dialog_set_default_response(GTK_DIALOG(spy_sabotage_shell),
                                   GTK_RESPONSE_ACCEPT);
 
-  frame = gtk_frame_new(_("Select Improvement to Sabotage"));
+  if (paction->result == ACTRES_STRIKE_BUILDING) {
+    frame = gtk_frame_new(_("Select Improvement to Strike"));
+  } else {
+    frame = gtk_frame_new(_("Select Improvement to Sabotage"));
+  }
   gtk_box_append(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(spy_sabotage_shell))), frame);
 
   vgrid = gtk_grid_new();
-- 
2.53.0

