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,11 @@ // 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; +} + // Ignore size defined in XML and set the actual menu size here function initMenuPosition() {