forked from townforge/townforge
game: fix buggy panel geometry saving/restoring
This commit is contained in:
parent
5362219097
commit
abb91e3d8d
@ -2955,7 +2955,7 @@ void CryptoCityUrho3D::HandleMainPanelGeometry(StringHash eventType, VariantMap&
|
||||
eventData[MainPanelGeometry::P_Y] = y;
|
||||
eventData[MainPanelGeometry::P_WIDTH] = width;
|
||||
eventData[MainPanelGeometry::P_HEIGHT] = height;
|
||||
eventData[MainPanelGeometry::P_SHADED] = shaded;
|
||||
eventData[MainPanelGeometry::P_SHADED] = (bool)shaded;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,6 +61,7 @@ public:
|
||||
|
||||
bool Shade(bool shade);
|
||||
bool IsShaded() const;
|
||||
int GetUnshadedHeight() const { return unshaded_height; }
|
||||
|
||||
static bool HasModalDialog();
|
||||
static bool CloseModal();
|
||||
|
@ -89,18 +89,25 @@ using namespace tb;
|
||||
class MainPanel: public UITBWindow
|
||||
{
|
||||
public:
|
||||
MainPanel(Urho3D::Context *ctx, const char *resource): UITBWindow(ctx, resource) {}
|
||||
MainPanel(Urho3D::Context *ctx, const char *resource): UITBWindow(ctx, resource), configured(false) {}
|
||||
virtual void SetRect(const TBRect &rect)
|
||||
{
|
||||
UITBWindow::SetRect(rect);
|
||||
if (!configured)
|
||||
return;
|
||||
const bool shaded = IsShaded();
|
||||
VariantMap eventData;
|
||||
eventData[MainPanelGeometry::P_X] = rect.x;
|
||||
eventData[MainPanelGeometry::P_Y] = rect.y;
|
||||
eventData[MainPanelGeometry::P_WIDTH] = rect.w;
|
||||
eventData[MainPanelGeometry::P_HEIGHT] = rect.h;
|
||||
eventData[MainPanelGeometry::P_SHADED] = IsShaded();
|
||||
eventData[MainPanelGeometry::P_HEIGHT] = shaded ? GetUnshadedHeight() : rect.h;
|
||||
eventData[MainPanelGeometry::P_SHADED] = shaded;
|
||||
SendEvent(E_CRYPTOCITY_MAIN_PANEL_GEOMETRY, eventData);
|
||||
}
|
||||
void OnConfigured() { configured = true; }
|
||||
|
||||
private:
|
||||
bool configured;
|
||||
};
|
||||
|
||||
static uint64_t get_shares(const GameState *game, const Map *map, const std::shared_ptr<Flag> &iflag, uint32_t special_event)
|
||||
@ -301,9 +308,12 @@ void UIUrho3D::Configure()
|
||||
y = 0;
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
command_window->Shade(shaded);
|
||||
command_window->Shade(false);
|
||||
command_window->SetRect({x, y, width, height});
|
||||
if (shaded)
|
||||
command_window->Shade(true);
|
||||
}
|
||||
command_window->OnConfigured();
|
||||
}
|
||||
|
||||
void UIUrho3D::CreateSpectatorModeWidget()
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "map.h"
|
||||
|
||||
class GameWallet;
|
||||
class MainPanel;
|
||||
|
||||
class UIBuildingSettingsDialog;
|
||||
class UILastUpdateEventsDialog;
|
||||
@ -444,7 +445,7 @@ private:
|
||||
UIMintDialog *mintDialog;
|
||||
UISmeltDialog *smeltDialog;
|
||||
|
||||
UITBWindow *command_window;
|
||||
MainPanel *command_window;
|
||||
|
||||
Urho3D::IntVector2 prev_size;
|
||||
std::unordered_map<std::string, cryptonote::cc_command_t> queued_commands, queued_commands_except_unmatched_trades;
|
||||
|
Loading…
Reference in New Issue
Block a user