From 0c7bf42dd6b38ff6f26852da81086249a8c56bcc Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Fri, 24 Nov 2017 21:44:47 +0300 Subject: [PATCH] panel: open panel menu by click on header --- public/app/features/panel/panel_header.ts | 31 +++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/public/app/features/panel/panel_header.ts b/public/app/features/panel/panel_header.ts index 2f94a8d43bf..846202bc61d 100644 --- a/public/app/features/panel/panel_header.ts +++ b/public/app/features/panel/panel_header.ts @@ -86,9 +86,10 @@ function panelHeader($compile) { let menuElem = elem.find('.panel-menu'); let menuScope; + let isDragged; elem.click(function(evt) { - //const targetClass = evt.target.className; + const targetClass = evt.target.className; // remove existing scope if (menuScope) { @@ -100,10 +101,30 @@ function panelHeader($compile) { menuElem.html(menuHtml); $compile(menuElem)(menuScope); - // if (targetClass === 'panel-title-text' || targetClass === 'panel-title') { - // evt.stopPropagation(); - // elem.find('[data-toggle=dropdown]').dropdown('toggle'); - // } + if (targetClass.indexOf('panel-title-text') >= 0 || targetClass.indexOf('panel-title') >= 0) { + togglePanelMenu(evt); + } + }); + + function togglePanelMenu(e) { + if (!isDragged) { + e.stopPropagation(); + elem.find('[data-toggle=dropdown]').dropdown('toggle'); + } + } + + let mouseX, mouseY; + elem.mousedown((e) => { + mouseX = e.pageX; + mouseY = e.pageY; + }); + + elem.mouseup((e) => { + if (mouseX === e.pageX && mouseY === e.pageY) { + isDragged = false; + } else { + isDragged = true; + } }); } };