From 10704ccb3d8d8bcb3556efab15eb3b9bc203bda6 Mon Sep 17 00:00:00 2001 From: rolux Date: Sat, 13 Oct 2018 12:03:14 +0200 Subject: [PATCH] Ox.Menu: listen to mouseup, not click --- source/UI/js/Menu/Menu.js | 55 ++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/source/UI/js/Menu/Menu.js b/source/UI/js/Menu/Menu.js index 6a097167..52c9a248 100644 --- a/source/UI/js/Menu/Menu.js +++ b/source/UI/js/Menu/Menu.js @@ -62,10 +62,10 @@ Ox.Menu = function(options, self) { ' Ox' + Ox.toTitleCase(self.options.size) ) .on({ - click: click, mouseenter: mouseenter, mouseleave: mouseleave, mousemove: mousemove, + mouseup: mouseup, mousewheel: mousewheel }) .bindEvent({ @@ -103,29 +103,6 @@ Ox.Menu = function(options, self) { .addClass('OxBottom') .appendTo(that); - function click(event) { - var item, - position, - $target = $(event.target), - $parent = $target.parent(); - // necessary for highlight - if ($parent.is('.OxCell')) { - $target = $parent; - $parent = $target.parent(); - } - if ($target.is('.OxCell')) { - position = $parent.data('position'); - item = that.items[position]; - if (!item.options('disabled')) { - clickItem(position); - } else { - that.hideMenu(); - } - } else { - that.hideMenu(); - } - } - function clickItem(position, files) { var item = that.items[position], group = item.options('group'), @@ -276,6 +253,29 @@ Ox.Menu = function(options, self) { } } + function mouseup(event) { + var item, + position, + $target = $(event.target), + $parent = $target.parent(); + // necessary for highlight + if ($parent.is('.OxCell')) { + $target = $parent; + $parent = $target.parent(); + } + if ($target.is('.OxCell')) { + position = $parent.data('position'); + item = that.items[position]; + if (!item.options('disabled')) { + clickItem(position); + } else { + that.hideMenu(); + } + } else { + that.hideMenu(); + } + } + function mousewheel(e, delta, deltaX, deltaY) { var $scrollbar; if (deltaY && !$(e.target).is('.OxScrollbar')) { @@ -376,9 +376,6 @@ Ox.Menu = function(options, self) { return $('
', { 'class': 'OxScrollbar Ox' + Ox.toTitleCase(direction), html: Ox.SYMBOLS['triangle_' + direction], - click: function() { // fixme: do we need to listen to click event? - return false; - }, mousedown: function() { self.scrollSpeed = 2; return false; @@ -808,7 +805,7 @@ Ox.Menu = function(options, self) { }; /*@ - setItemTitle setItemTitle + setItemTitle setItemTitle (id, title) -> set item title @*/ that.setItemTitle = function(id, title) { @@ -835,7 +832,7 @@ Ox.Menu = function(options, self) { that.gainFocus(); that.$layer = Ox.Layer({type: 'menu'}) .css({top: self.options.mainmenu ? '20px' : 0}) - .bindEvent({click: clickLayer}) + .on({mouseup: clickLayer}) .show(); } return that;