summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/window.cpp11
-rw-r--r--src/window_gui.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/src/window.cpp b/src/window.cpp
index c9c43aab6..97c762fca 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -194,13 +194,14 @@ void CDECL Window::SetWidgetsLoweredState(bool lowered_stat, int widgets, ...)
}
/**
- * Raise all buttons of the window
+ * Raise the buttons of the window.
+ * @param autoraise Raise only the push buttons of the window.
*/
-void Window::RaiseButtons()
+void Window::RaiseButtons(bool autoraise)
{
if (this->widget != NULL) {
for (uint i = 0; i < this->widget_count; i++) {
- if (this->IsWidgetLowered(i)) {
+ if ((!autoraise || (this->widget[i].type & WWB_PUSHBUTTON)) && this->IsWidgetLowered(i)) {
this->RaiseWidget(i);
this->InvalidateWidget(i);
}
@@ -208,7 +209,7 @@ void Window::RaiseButtons()
}
if (this->nested_array != NULL) {
for (uint i = 0; i < this->nested_array_size; i++) {
- if (this->nested_array[i] != NULL && this->IsWidgetLowered(i)) {
+ if (this->nested_array[i] != NULL && (!autoraise || (this->nested_array[i]->type & WWB_PUSHBUTTON)) && this->IsWidgetLowered(i)) {
this->RaiseWidget(i);
this->InvalidateWidget(i);
}
@@ -1422,7 +1423,7 @@ static void DecreaseWindowCounters()
FOR_ALL_WINDOWS_FROM_FRONT(w) {
if ((w->flags4 & WF_TIMEOUT_MASK) && !(--w->flags4 & WF_TIMEOUT_MASK)) {
w->OnTimeout();
- if (w->desc_flags & WDF_UNCLICK_BUTTONS) w->RaiseButtons();
+ if (w->desc_flags & WDF_UNCLICK_BUTTONS) w->RaiseButtons(true);
}
}
}
diff --git a/src/window_gui.h b/src/window_gui.h
index 83f8d1495..d87669061 100644
--- a/src/window_gui.h
+++ b/src/window_gui.h
@@ -502,7 +502,7 @@ public:
void HandleButtonClick(byte widget);
const Widget *GetWidgetOfType(WidgetType widget_type) const;
- void RaiseButtons();
+ void RaiseButtons(bool autoraise = false);
void CDECL SetWidgetsDisabledState(bool disab_stat, int widgets, ...);
void CDECL SetWidgetsHiddenState(bool hidden_stat, int widgets, ...);
void CDECL SetWidgetsLoweredState(bool lowered_stat, int widgets, ...);