Index: binaries/data/mods/public/gui/session/hotkeys/misc.xml =================================================================== --- binaries/data/mods/public/gui/session/hotkeys/misc.xml +++ binaries/data/mods/public/gui/session/hotkeys/misc.xml @@ -1,8 +1,5 @@ - - closeOpenDialogs(); - openChat(); Index: binaries/data/mods/public/gui/session/input.js =================================================================== --- binaries/data/mods/public/gui/session/input.js +++ binaries/data/mods/public/gui/session/input.js @@ -1825,13 +1825,18 @@ function clearSelection() { - if(inputState==INPUT_BUILDING_PLACEMENT || inputState==INPUT_BUILDING_WALL_PATHING) + if (dialogOpen()) + closeOpenDialogs(); + else { - inputState = INPUT_NORMAL; - placementSupport.Reset(); + if (inputState == INPUT_BUILDING_PLACEMENT || inputState == INPUT_BUILDING_WALL_PATHING) + { + inputState = INPUT_NORMAL; + placementSupport.Reset(); + } + else + g_Selection.reset(); + preSelectedAction = ACTION_NONE; } - else - g_Selection.reset(); - preSelectedAction = ACTION_NONE; } Index: binaries/data/mods/public/gui/session/menu.js =================================================================== --- binaries/data/mods/public/gui/session/menu.js +++ binaries/data/mods/public/gui/session/menu.js @@ -58,6 +58,12 @@ // Redefined every time someone makes a tribute (so we can save some data in a closure). Called in input.js handleInputBeforeGui. var g_FlushTributing = function() {}; +function dialogOpen() +{ + return g_IsMenuOpen || g_IsDiplomacyOpen || g_IsTradeOpen || g_IsObjectivesOpen || + !Engine.GetGUIObjectByName("chatDialogPanel").hidden; +} + // Ignore size defined in XML and set the actual menu size here function initMenuPosition() {