Timetable window: Double-click only triggers change time if button enabled

This commit is contained in:
Jonathan G Rennison
2023-02-18 12:31:00 +00:00
parent 5e398d9478
commit bf5a3e259a

View File

@@ -533,7 +533,7 @@ struct TimetableWindow : GeneralVehicleWindow {
return ES_NOT_HANDLED; return ES_NOT_HANDLED;
} }
void OnPaint() override void SetButtonDisabledStates()
{ {
const Vehicle *v = this->vehicle; const Vehicle *v = this->vehicle;
int selected = this->sel_index; int selected = this->sel_index;
@@ -621,7 +621,11 @@ struct TimetableWindow : GeneralVehicleWindow {
this->SetWidgetDisabledState(WID_VT_SCHEDULED_DISPATCH, v->orders == nullptr); this->SetWidgetDisabledState(WID_VT_SCHEDULED_DISPATCH, v->orders == nullptr);
this->GetWidget<NWidgetStacked>(WID_VT_START_DATE_SELECTION)->SetDisplayedPlane(HasBit(v->vehicle_flags, VF_SCHEDULED_DISPATCH) ? 1 : 0); this->GetWidget<NWidgetStacked>(WID_VT_START_DATE_SELECTION)->SetDisplayedPlane(HasBit(v->vehicle_flags, VF_SCHEDULED_DISPATCH) ? 1 : 0);
}
void OnPaint() override
{
this->SetButtonDisabledStates();
this->DrawWidgets(); this->DrawWidgets();
} }
@@ -897,7 +901,10 @@ struct TimetableWindow : GeneralVehicleWindow {
/* Allow change time by double-clicking order */ /* Allow change time by double-clicking order */
if (click_count == 2) { if (click_count == 2) {
this->sel_index = selected == INVALID_ORDER ? -1 : selected; this->sel_index = selected == INVALID_ORDER ? -1 : selected;
this->OnClick(pt, WID_VT_CHANGE_TIME, click_count); this->SetButtonDisabledStates();
if (!this->IsWidgetDisabled(WID_VT_CHANGE_TIME)) {
this->OnClick(pt, WID_VT_CHANGE_TIME, click_count);
}
return; return;
} else { } else {
this->sel_index = (selected == INVALID_ORDER || selected == this->sel_index) ? -1 : selected; this->sel_index = (selected == INVALID_ORDER || selected == this->sel_index) ? -1 : selected;