From 0e45169220ae32336455ed8fa80ea8dff66dceb7 Mon Sep 17 00:00:00 2001 From: Kasidit Iamthong Date: Sun, 10 May 2015 09:57:30 +0700 Subject: [PATCH 1/2] Fix Enter key event for interactive Expand Abbr. Because Emmet's Interactive Expand Abbreviations panel shows up when the `Ctrl + Shift + Alt + Enter` (default value) key are pressed (down), when the `Enter` key is up, the panel suddenly closed. So there is no time for typing anything into. This is a hack for preventing the panel from being closed. --- prompt.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/prompt.js b/prompt.js index 2b92b47..7fbdb4d 100644 --- a/prompt.js +++ b/prompt.js @@ -51,6 +51,8 @@ define(function(require, exports, module) { AppInit.appReady(function() { panel = WorkspaceManager.createBottomPanel('io.emmet.interactive-prompt', $panel); + var isKeyEnterDown = false; + // register keyboard handlers $panel.find('.emmet-prompt__input') .on('keyup', function(evt) { @@ -61,8 +63,10 @@ define(function(require, exports, module) { } if (evt.keyCode === KeyEvent.DOM_VK_RETURN || evt.keyCode === KeyEvent.DOM_VK_ENTER) { - $panel.triggerHandler('confirm.emmet', [this.value]); - hidePanel(); + if (isKeyEnterDown) { + $panel.triggerHandler('confirm.emmet', [this.value]); + hidePanel(); + } return evt.preventDefault(); } @@ -72,6 +76,11 @@ define(function(require, exports, module) { return evt.preventDefault(); } }) + .on('keydown', function(evt) { + if (evt.keyCode === KeyEvent.DOM_VK_RETURN || evt.keyCode === KeyEvent.DOM_VK_ENTER) { + isKeyEnterDown = true; + } + }) .on('blur cancel', function() { setTimeout(function() { if (panel.isVisible()) { From d53853ce34707c41730bee0a1eb618dfa1482347 Mon Sep 17 00:00:00 2001 From: Kasidit Iamthong Date: Sun, 10 May 2015 10:05:56 +0700 Subject: [PATCH 2/2] Update prompt.js Fix bug. --- prompt.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/prompt.js b/prompt.js index 7fbdb4d..8865e33 100644 --- a/prompt.js +++ b/prompt.js @@ -14,9 +14,12 @@ define(function(require, exports, module) { var $panel = $(panelHtml); var panel = null; + var isKeyEnterDown = false; + function hidePanel() { $panel.off('.emmet'); panel.hide(); + isKeyEnterDown = false; } function noop() {} @@ -51,8 +54,6 @@ define(function(require, exports, module) { AppInit.appReady(function() { panel = WorkspaceManager.createBottomPanel('io.emmet.interactive-prompt', $panel); - var isKeyEnterDown = false; - // register keyboard handlers $panel.find('.emmet-prompt__input') .on('keyup', function(evt) {