close popup (don't reopen) on combobox body click when popup is open - close 19

This commit is contained in:
Vadim Lopatin 2017-09-08 10:33:21 +03:00
parent 31d6a09990
commit 4e4cb9ee4e
1 changed files with 6 additions and 2 deletions

View File

@ -87,8 +87,10 @@ class ComboBoxBase : HorizontalLayout, OnClickHandler {
override @property bool enabled() { return super.enabled; }
override bool onClick(Widget source) {
if (enabled)
showPopup();
if (enabled) {
if (!_popup && _lastPopupCloseTimestamp + 200 < currentTimeMillis)
showPopup();
}
return true;
}
@ -121,6 +123,7 @@ class ComboBoxBase : HorizontalLayout, OnClickHandler {
_button.layout(rc);
}
protected long _lastPopupCloseTimestamp;
protected void popupClosed() {
}
@ -132,6 +135,7 @@ class ComboBoxBase : HorizontalLayout, OnClickHandler {
_popup.flags = PopupFlags.CloseOnClickOutside;
_popup.styleId = STYLE_POPUP_MENU;
_popup.popupClosed = delegate (PopupWidget source) {
_lastPopupCloseTimestamp = currentTimeMillis;
_popup = null;
_popupList = null;
};