mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r24744) -Codechange: Handle clicking on editboxed also via QueryString.
This commit is contained in:
parent
c283a41248
commit
c8c040d057
|
@ -811,6 +811,14 @@ void QueryString::DrawEditBox(const Window *w, int wid) const
|
|||
_cur_dpi = old_dpi;
|
||||
}
|
||||
|
||||
void QueryString::ClickEditBox(Window *w, Point pt, int wid, int click_count, bool focus_changed)
|
||||
{
|
||||
if (!focus_changed && w->window_class != WC_OSK) {
|
||||
/* Open the OSK window if clicked on an edit box, while not changing focus */
|
||||
ShowOnScreenKeyboard(w, wid);
|
||||
}
|
||||
}
|
||||
|
||||
/** Class for the string query window. */
|
||||
struct QueryStringWindow : public Window
|
||||
{
|
||||
|
|
|
@ -65,6 +65,7 @@ private:
|
|||
bool HasEditBoxFocus(const Window *w, int wid) const;
|
||||
public:
|
||||
void DrawEditBox(const Window *w, int wid) const;
|
||||
void ClickEditBox(Window *w, Point pt, int wid, int click_count, bool focus_changed);
|
||||
void HandleEditBox(Window *w, int wid);
|
||||
HandleEditBoxResult HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, EventState &state);
|
||||
};
|
||||
|
|
|
@ -463,20 +463,19 @@ static void DispatchLeftClickEvent(Window *w, int x, int y, int click_count)
|
|||
|
||||
if ((widget_type & ~WWB_PUSHBUTTON) < WWT_LAST && (widget_type & WWB_PUSHBUTTON)) w->HandleButtonClick(widget_index);
|
||||
|
||||
Point pt = { x, y };
|
||||
|
||||
switch (widget_type) {
|
||||
case NWID_VSCROLLBAR:
|
||||
case NWID_HSCROLLBAR:
|
||||
ScrollbarClickHandler(w, nw, x, y);
|
||||
break;
|
||||
|
||||
case WWT_EDITBOX:
|
||||
if (!focused_widget_changed) { // Only open the OSK window if clicking on an already focused edit box
|
||||
/* Open the OSK window if clicked on an edit box */
|
||||
if (w->querystrings.Contains(widget_index)) {
|
||||
ShowOnScreenKeyboard(w, widget_index);
|
||||
}
|
||||
}
|
||||
case WWT_EDITBOX: {
|
||||
QueryString *query = w->GetQueryString(widget_index);
|
||||
if (query != NULL) query->ClickEditBox(w, pt, widget_index, click_count, focused_widget_changed);
|
||||
break;
|
||||
}
|
||||
|
||||
case WWT_CLOSEBOX: // 'X'
|
||||
delete w;
|
||||
|
@ -520,7 +519,6 @@ static void DispatchLeftClickEvent(Window *w, int x, int y, int click_count)
|
|||
Game::NewEvent(new ScriptEventWindowWidgetClick((ScriptWindow::WindowClass)w->window_class, w->window_number, widget_index));
|
||||
}
|
||||
|
||||
Point pt = { x, y };
|
||||
w->OnClick(pt, widget_index, click_count);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue