From 4e4cb9ee4e4f1f1c0a8a30477e660a65f015aa08 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Fri, 8 Sep 2017 10:33:21 +0300 Subject: [PATCH] close popup (don't reopen) on combobox body click when popup is open - close 19 --- src/dlangui/widgets/combobox.d | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/dlangui/widgets/combobox.d b/src/dlangui/widgets/combobox.d index 329b8133..964721fe 100644 --- a/src/dlangui/widgets/combobox.d +++ b/src/dlangui/widgets/combobox.d @@ -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; };