Index: ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMap.xml =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMap.xml (revision 25760) +++ ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMap.xml (revision 25761) @@ -1,60 +1,61 @@ Index: ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapFlareButton.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapFlareButton.js (revision 25760) +++ ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapFlareButton.js (revision 25761) @@ -1,29 +1,35 @@ /** * If the button that this class manages is pressed, an idle unit having one of the given classes is selected. */ class MiniMapFlareButton { - constructor() + constructor(playerViewControl) { this.flareButton = Engine.GetGUIObjectByName("flareButton"); this.flareButton.onPress = this.onPress.bind(this); registerHotkeyChangeHandler(this.onHotkeyChange.bind(this)); + playerViewControl.registerViewedPlayerChangeHandler(this.rebuild.bind(this)); + } + + rebuild() + { + this.flareButton.enabled = !g_IsObserver; } onHotkeyChange() { this.flareButton.tooltip = colorizeHotkey("%(hotkey)s" + " ", "session.flare") + translate(this.Tooltip); } onPress() { if (g_IsObserver) return; if (inputState == INPUT_NORMAL) inputState = INPUT_FLARE; } } MiniMapFlareButton.prototype.Tooltip = markForTranslation("Send a flare to your allies"); Index: ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapPanel.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapPanel.js (revision 25760) +++ ps/trunk/binaries/data/mods/public/gui/session/minimap/MiniMapPanel.js (revision 25761) @@ -1,23 +1,23 @@ /** * This class is concerned with managing the different elements of the minimap panel. */ class MiniMapPanel { constructor(playerViewControl, diplomacyColors, idleWorkerClasses) { this.diplomacyColorsButton = new MiniMapDiplomacyColorsButton(diplomacyColors); this.idleWorkerButton = new MiniMapIdleWorkerButton(playerViewControl, idleWorkerClasses); - this.flareButton = new MiniMapFlareButton(); + this.flareButton = new MiniMapFlareButton(playerViewControl); this.miniMap = new MiniMap(); } flare(target, playerID) { return this.miniMap.flare(target, playerID); } isMouseOverMiniMap() { return this.miniMap.isMouseOverMiniMap(); } }