From 5773e6afb51a52f0821f2dec0ad34617f4bbf636 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Tue, 16 Jul 2013 11:24:11 -0400 Subject: [PATCH] fix multiple deco presets being able to be selected at once, fix "Decorations: Enable" coming up every time you open the deco editor, presets deselected when you leave editor --- src/gui/game/GameModel.cpp | 17 ++++++++++------- src/gui/game/GameView.cpp | 11 +++-------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/gui/game/GameModel.cpp b/src/gui/game/GameModel.cpp index efb7d780d..437805042 100644 --- a/src/gui/game/GameModel.cpp +++ b/src/gui/game/GameModel.cpp @@ -799,13 +799,16 @@ bool GameModel::GetPaused() void GameModel::SetDecoration(bool decorationState) { - ren->decorations_enable = decorationState?1:0; - notifyDecorationChanged(); - UpdateQuickOptions(); - if (decorationState) - SetInfoTip("Decorations Layer: On"); - else - SetInfoTip("Decorations Layer: Off"); + if (ren->decorations_enable != decorationState) + { + ren->decorations_enable = decorationState?1:0; + notifyDecorationChanged(); + UpdateQuickOptions(); + if (decorationState) + SetInfoTip("Decorations Layer: On"); + else + SetInfoTip("Decorations Layer: Off"); + } } bool GameModel::GetDecoration() diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp index 3aac3fc74..96806b1c7 100644 --- a/src/gui/game/GameView.cpp +++ b/src/gui/game/GameView.cpp @@ -741,6 +741,7 @@ void GameView::NotifyColourSelectorVisibilityChanged(GameModel * sender) AddComponent(button); } AddComponent(colourPicker); + c->SetActiveColourPreset(-1); } } @@ -754,14 +755,8 @@ void GameView::NotifyColourPresetsChanged(GameModel * sender) ColourPresetAction(GameView * _v, int preset) : preset(preset) { v = _v; } void ActionCallback(ui::Button * sender_) { - ToolButton *sender = (ToolButton*)sender_; - if(sender->GetSelectionState() == 0) - { - v->c->SetActiveColourPreset(preset); - v->c->SetColour(sender->Appearance.BackgroundInactive); - } - else - sender->SetSelectionState(0); + v->c->SetActiveColourPreset(preset); + v->c->SetColour(sender_->Appearance.BackgroundInactive); } };