(svn r25413) -Fix-ish: Suppress focussing editboxes which are not visible.

This commit is contained in:
frosch 2013-06-15 15:31:04 +00:00
parent 5cb174c6b8
commit ee4e68bd5e
3 changed files with 10 additions and 1 deletions

View File

@ -1061,6 +1061,8 @@ struct AIDebugWindow : public Window {
this->querystrings[WID_AID_BREAK_STR_EDIT_BOX] = &this->break_editbox;
SetWidgetsDisabledState(!this->show_break_box, WID_AID_BREAK_STR_ON_OFF_BTN, WID_AID_BREAK_STR_EDIT_BOX, WID_AID_MATCH_CASE_BTN, WIDGET_LIST_END);
/* Restore the break string value from static variable */
this->break_editbox.text.Assign(this->break_string);

View File

@ -646,7 +646,11 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
this->querystrings[WID_NS_FILTER] = &this->filter_editbox;
this->filter_editbox.cancel_button = QueryString::ACTION_CLEAR;
if (editable) this->SetFocusedWidget(WID_NS_FILTER);
if (editable) {
this->SetFocusedWidget(WID_NS_FILTER);
} else {
this->DisableWidget(WID_NS_FILTER);
}
this->avails.SetListing(this->last_sorting);
this->avails.SetFiltering(this->last_filtering);

View File

@ -482,6 +482,8 @@ EventState Window::OnHotkey(int hotkey)
if (nw == NULL || nw->IsDisabled()) return ES_NOT_HANDLED;
if (nw->type == WWT_EDITBOX) {
if (this->IsShaded()) return ES_NOT_HANDLED;
/* Focus editbox */
this->SetFocusedWidget(hotkey);
SetFocusedWindow(this);
@ -891,6 +893,7 @@ void Window::SetShaded(bool make_shaded)
int desired = make_shaded ? SZSP_HORIZONTAL : 0;
if (this->shade_select->shown_plane != desired) {
if (make_shaded) {
if (this->nested_focus != NULL) this->UnfocusFocusedWidget();
this->unshaded_size.width = this->width;
this->unshaded_size.height = this->height;
this->shade_select->SetDisplayedPlane(desired);