@@ -291,12 +291,20 @@ FocusScope {
291291 InverseMouseArea {
292292 id: closeMouseArea
293293 anchors.fill: panel
294− enabled: (root.state == "visible" || root.state == "drawer") && (!root.lockedVisible || panel.highlightIndex >= -1)
294+ enabled: root.state == "visible" || root.state == "drawer"
295295 visible: enabled
296296 onPressed: {
297297 mouse.accepted = false;
298− panel.highlightIndex = -2;
299− root.hide();
298+ if (root.lockedVisible) {
299+ if (root.state == "drawer") {
300+ switchToNextState("visible")
301+ }
302+ } else {
303+ if (root.state == "visible" || root.state == "drawer") {
304+ panel.highlightIndex = -2;
305+ root.hide();
306+ }
307+ }
300308 }
301309 }
302310
@@ -352,6 +360,22 @@ FocusScope {
352360 cached: drawer.moving
353361 }
354362
363+ MouseArea {
364+ anchors.fill: drawer
365+ property int startX: 0
366+ preventStealing: true
367+
368+ onPressed: {
369+ print("**** mouse pressed")
370+ startX = mouseX
371+ }
372+
373+ onMouseXChanged: {
374+ drawer.x += mouseX - startX
375+ startX = mouseX
376+ }
377+ }
378+
355379 Drawer {
356380 id: drawer
357381 anchors {