File tree 1 file changed +21
-2
lines changed
domino-ui/src/main/java/org/dominokit/domino/ui/menu
1 file changed +21
-2
lines changed Original file line number Diff line number Diff line change 19
19
import static java .util .Objects .nonNull ;
20
20
import static org .dominokit .domino .ui .utils .Domino .*;
21
21
22
+ import elemental2 .core .JsDate ;
22
23
import elemental2 .dom .Element ;
23
24
import elemental2 .dom .Event ;
24
25
import elemental2 .dom .HTMLElement ;
@@ -100,15 +101,33 @@ public AbstractMenuItem() {
100
101
indicatorIcon = createIndicator (Icons .menu_right ());
101
102
102
103
init (this );
104
+ double [] startTime = new double [] {0 };
103
105
104
106
this .addEventListener (
105
107
EventType .touchstart .getName (),
106
108
evt -> {
109
+ startTime [0 ] = JsDate .now ();
107
110
focus ();
108
111
openSubMenu ();
109
112
});
110
- this .addEventListener (EventType .touchend .getName (), this ::onSelected );
111
- this .addEventListener (EventType .click .getName (), this ::onSelected );
113
+ this .addEventListener (
114
+ EventType .touchend .getName (),
115
+ evt -> {
116
+ evt .stopPropagation ();
117
+ double endTime = JsDate .now ();
118
+ double diff = endTime - startTime [0 ];
119
+ if (diff < 200 ) {
120
+ evt .preventDefault ();
121
+ onSelected (evt );
122
+ }
123
+ });
124
+ this .addEventListener (
125
+ EventType .click .getName (),
126
+ evt -> {
127
+ evt .stopPropagation ();
128
+ evt .preventDefault ();
129
+ onSelected (evt );
130
+ });
112
131
this .addEventListener (EventType .mouseenter .getName (), evt -> openSubMenu ());
113
132
}
114
133
You can’t perform that action at this time.
0 commit comments