From 89861b632a2f4802bb96b41269248855d2af88a1 Mon Sep 17 00:00:00 2001 From: Dino Date: Tue, 15 Apr 2025 16:13:29 -0400 Subject: [PATCH] #1292 Mac - use meta/command key instead of ctrl key for menu accelerator keys. --- client/gui-gtk-5.0/menu.c | 66 ++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/client/gui-gtk-5.0/menu.c b/client/gui-gtk-5.0/menu.c index 8250d19b12..7398bc8580 100644 --- a/client/gui-gtk-5.0/menu.c +++ b/client/gui-gtk-5.0/menu.c @@ -70,6 +70,14 @@ #include "menu.h" +/* Mac uses "command"/"meta" key for menu accelerator modifier key */ +#ifdef __APPLE__ +#define ACCL_MOD_KEY "" +#else +#define ACCL_MOD_KEY "" +#endif + + static GMenu *main_menubar = NULL; static bool menus_built = FALSE; @@ -559,12 +567,12 @@ static struct menu_entry_info menu_entries[] = #ifdef FREECIV_DEBUG { "RELOAD_TILESET", N_("_Reload Tileset"), - "reload_tileset", "r", MGROUP_SAFE, + "reload_tileset", ACCL_MOD_KEY"r", MGROUP_SAFE, NULL, FALSE }, #endif /* FREECIV_DEBUG */ { "GAME_SAVE", N_("_Save Game"), - "game_save", "s", MGROUP_SAFE, + "game_save", ACCL_MOD_KEY"s", MGROUP_SAFE, NULL, FALSE }, { "GAME_SAVE_AS", N_("Save Game _As..."), "game_save_as", NULL, MGROUP_SAFE, @@ -579,27 +587,27 @@ static struct menu_entry_info menu_entries[] = "leave", NULL, MGROUP_SAFE, NULL, FALSE }, { "QUIT", N_("_Quit"), - "quit", "q", MGROUP_SAFE, + "quit", ACCL_MOD_KEY"q", MGROUP_SAFE, NULL, FALSE }, /* Edit menu */ { "FIND_CITY", N_("_Find City"), - "find_city", "f", MGROUP_SAFE, + "find_city", ACCL_MOD_KEY"f", MGROUP_SAFE, NULL, FALSE }, { "WORKLISTS", N_("Work_lists"), - "worklists", "l", MGROUP_SAFE, + "worklists", ACCL_MOD_KEY"l", MGROUP_SAFE, NULL, FALSE }, { "RALLY_DLG", N_("Rally point dialog"), - "rally_dlg", "r", MGROUP_SAFE, + "rally_dlg", ACCL_MOD_KEY"r", MGROUP_SAFE, NULL, FALSE }, { "INFRA_DLG", N_("Infra dialog"), - "infra_dlg", "f", MGROUP_SAFE, + "infra_dlg", ACCL_MOD_KEY"f", MGROUP_SAFE, NULL, FALSE }, { "EDIT_MODE", N_("_Editing Mode"), - "edit_mode", "e", MGROUP_SAFE, + "edit_mode", ACCL_MOD_KEY"e", MGROUP_SAFE, edit_mode_callback, FALSE }, { "TOGGLE_FOG", N_("Toggle Fog of _War"), - "toggle_fog", "w", MGROUP_EDIT, + "toggle_fog", ACCL_MOD_KEY"w", MGROUP_EDIT, toggle_fog_callback, FALSE }, { "SCENARIO_PROPERTIES", N_("Game/Scenario Properties"), "scenario_props", NULL, MGROUP_EDIT, @@ -613,37 +621,37 @@ static struct menu_entry_info menu_entries[] = /* View menu */ { "SHOW_CITY_OUTLINES", N_("Cit_y Outlines"), - "show_city_outlines", "y", MGROUP_SAFE, + "show_city_outlines", ACCL_MOD_KEY"y", MGROUP_SAFE, show_city_outlines_callback, FALSE }, { "SHOW_CITY_OUTPUT", N_("City Output"), - "show_city_output", "v", MGROUP_SAFE, + "show_city_output", ACCL_MOD_KEY"v", MGROUP_SAFE, show_city_output_callback, FALSE }, { "SHOW_MAP_GRID", N_("Map _Grid"), - "show_map_grid", "g", MGROUP_SAFE, + "show_map_grid", ACCL_MOD_KEY"g", MGROUP_SAFE, show_map_grid_callback, FALSE }, { "SHOW_NAT_BORDERS", N_("National _Borders"), - "show_nat_borders", "b", MGROUP_SAFE, + "show_nat_borders", ACCL_MOD_KEY"b", MGROUP_SAFE, show_national_borders_callback, FALSE }, { "SHOW_NATIVE_TILES", N_("Native Tiles"), - "show_native_tiles", "n", MGROUP_SAFE, + "show_native_tiles", ACCL_MOD_KEY"n", MGROUP_SAFE, show_native_tiles_callback, FALSE }, { "SHOW_CITY_FULL_BAR", N_("City Full Bar"), "show_city_full_bar", NULL, MGROUP_SAFE, show_city_full_bar_callback, FALSE }, { "SHOW_CITY_NAMES", N_("City _Names"), - "show_city_names", "n", MGROUP_SAFE, + "show_city_names", ACCL_MOD_KEY"n", MGROUP_SAFE, show_city_names_callback, FALSE }, { "SHOW_CITY_GROWTH", N_("City G_rowth"), - "show_city_growth", "o", MGROUP_SAFE, + "show_city_growth", ACCL_MOD_KEY"o", MGROUP_SAFE, show_city_growth_callback, FALSE }, { "SHOW_CITY_PRODUCTIONS", N_("City _Production"), - "show_city_productions", "p", MGROUP_SAFE, + "show_city_productions", ACCL_MOD_KEY"p", MGROUP_SAFE, show_city_productions_callback, FALSE }, { "SHOW_CITY_BUY_COST", N_("City Buy Cost"), "show_city_buy_cost", NULL, MGROUP_SAFE, show_city_buy_cost_callback, FALSE }, { "SHOW_CITY_TRADE_ROUTES", N_("City Tra_deroutes"), - "show_trade_routes", "d", MGROUP_SAFE, + "show_trade_routes", ACCL_MOD_KEY"d", MGROUP_SAFE, show_city_trade_routes_callback, FALSE }, { "SHOW_TERRAIN", N_("_Terrain"), "show_terrain", NULL, MGROUP_SAFE, @@ -685,7 +693,7 @@ static struct menu_entry_info menu_entries[] = "show_unit_shields", NULL, MGROUP_SAFE, show_unit_shields_callback, FALSE }, { "SHOW_STACK_SIZE", N_("Unit Stack Size"), - "show_stack_size", "plus", MGROUP_SAFE, + "show_stack_size", ACCL_MOD_KEY"plus", MGROUP_SAFE, show_stack_size_callback, FALSE }, { "SHOW_FOCUS_UNIT", N_("Focu_s Unit"), "show_focus_unit", NULL, MGROUP_SAFE, @@ -695,7 +703,7 @@ static struct menu_entry_info menu_entries[] = show_fog_of_war_callback, FALSE }, { "FULL_SCREEN", N_("_Fullscreen"), - "full_screen", "F11", MGROUP_SAFE, + "full_screen", ACCL_MOD_KEY"F11", MGROUP_SAFE, full_screen_callback, FALSE }, { "CENTER_VIEW", N_("_Center View"), "center_view", "c", MGROUP_PLAYER, @@ -803,16 +811,16 @@ static struct menu_entry_info menu_entries[] = "transform_terrain", "o", MGROUP_UNIT, NULL, FALSE }, { "CONNECT_ROAD", N_("Connect With Roa_d"), - "connect_road", "r", MGROUP_UNIT, + "connect_road", ACCL_MOD_KEY"r", MGROUP_UNIT, NULL, FALSE }, { "CONNECT_RAIL", N_("Connect With Rai_l"), - "connect_rail", "l", MGROUP_UNIT, + "connect_rail", ACCL_MOD_KEY"l", MGROUP_UNIT, NULL, FALSE }, { "CONNECT_MAGLEV", N_("Connect With _Maglev"), - "connect_maglev", "m", MGROUP_UNIT, + "connect_maglev", ACCL_MOD_KEY"m", MGROUP_UNIT, NULL, FALSE }, { "CONNECT_IRRIGATION", N_("Connect With Irri_gation"), - "connect_irrigation", "i", MGROUP_UNIT, + "connect_irrigation", ACCL_MOD_KEY"i", MGROUP_UNIT, NULL, FALSE }, { "CLEAN", N_("_Clean"), "clean", "p", MGROUP_UNIT, @@ -856,7 +864,7 @@ static struct menu_entry_info menu_entries[] = NULL, FALSE }, { "TAX_RATES", N_("_Tax Rates..."), - "tax_rates", "t", MGROUP_PLAYING, + "tax_rates", ACCL_MOD_KEY"t", MGROUP_PLAYING, NULL, FALSE }, { "POLICIES", N_("_Policies..."), "policies", "p", MGROUP_PLAYER, @@ -890,7 +898,7 @@ static struct menu_entry_info menu_entries[] = "bg_select_0", "F1", MGROUP_PLAYING, NULL, FALSE }, { "BG_ASSIGN_1", N_("Assign Battle Group 1"), - "bg_assign_0", "F1", MGROUP_PLAYING, + "bg_assign_0", ACCL_MOD_KEY"F1", MGROUP_PLAYING, NULL, FALSE }, { "BG_APPEND_1", N_("Append to Battle Group 1"), "bg_append_0", "F1", MGROUP_PLAYING, @@ -899,7 +907,7 @@ static struct menu_entry_info menu_entries[] = "bg_select_1", "F2", MGROUP_PLAYING, NULL, FALSE }, { "BG_ASSIGN_2", N_("Assign Battle Group 2"), - "bg_assign_1", "F2", MGROUP_PLAYING, + "bg_assign_1", ACCL_MOD_KEY"F2", MGROUP_PLAYING, NULL, FALSE }, { "BG_APPEND_2", N_("Append to Battle Group 2"), "bg_append_1", "F2", MGROUP_PLAYING, @@ -908,7 +916,7 @@ static struct menu_entry_info menu_entries[] = "bg_select_2", "F3", MGROUP_PLAYING, NULL, FALSE }, { "BG_ASSIGN_3", N_("Assign Battle Group 3"), - "bg_assign_2", "F3", MGROUP_PLAYING, + "bg_assign_2", ACCL_MOD_KEY"F3", MGROUP_PLAYING, NULL, FALSE }, { "BG_APPEND_3", N_("Append to Battle Group 3"), "bg_append_2", "F3", MGROUP_PLAYING, @@ -917,7 +925,7 @@ static struct menu_entry_info menu_entries[] = "bg_select_3", "F4", MGROUP_PLAYING, NULL, FALSE }, { "BG_ASSIGN_4", N_("Assign Battle Group 4"), - "bg_assign_3", "F4", MGROUP_PLAYING, + "bg_assign_3", ACCL_MOD_KEY"F4", MGROUP_PLAYING, NULL, FALSE }, { "BG_APPEND_4", N_("Append to Battle Group 4"), "bg_append_3", "F4", MGROUP_PLAYING, -- 2.31.0