From dd284a7bd0f449b9f220ad46b5cca0f064a56ffc Mon Sep 17 00:00:00 2001 From: Wu Cheng-Han Date: Wed, 7 Dec 2016 01:34:42 +0800 Subject: [PATCH] Fix textcomplete up side down option not set properly --- public/js/index.js | 12 +++++------- .../jquery-textcomplete/jquery.textcomplete.js | 5 +++-- 2 files changed, 8 insertions(+), 9 deletions(-) mode change 100644 => 100755 public/vendor/jquery-textcomplete/jquery.textcomplete.js diff --git a/public/js/index.js b/public/js/index.js index a2e0400..96580fe 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -3651,9 +3651,6 @@ function reverseSortCursorMenu(dropdown) { return items; } -var lastUpSideDown = false; -var upSideDown = false; - var checkCursorMenu = _.throttle(checkCursorMenuInner, cursorMenuThrottle); function checkCursorMenuInner() { @@ -3692,6 +3689,8 @@ function checkCursorMenuInner() { // set offset var offsetLeft = 0; var offsetTop = defaultTextHeight; + // set up side down + var lastUpSideDown = upSideDown = false; // only do when have width and height if (width > 0 && height > 0) { // make element right bound not larger than doc width @@ -3703,12 +3702,11 @@ function checkCursorMenuInner() { offsetTop = -(height + menuBottomMargin); // reverse sort menu because upSideDown dropdown.html(reverseSortCursorMenu(dropdown)); - lastUpSideDown = upSideDown; upSideDown = true; - } else { - lastUpSideDown = upSideDown; - upSideDown = false; } + var textCompleteDropdown = $(editor.getInputField()).data('textComplete').dropdown; + lastUpSideDown = textCompleteDropdown.upSideDown; + textCompleteDropdown.upSideDown = upSideDown; } // make menu scroll top only if upSideDown changed if (upSideDown !== lastUpSideDown) diff --git a/public/vendor/jquery-textcomplete/jquery.textcomplete.js b/public/vendor/jquery-textcomplete/jquery.textcomplete.js old mode 100644 new mode 100755 index cd2f863..8c25af1 --- a/public/vendor/jquery-textcomplete/jquery.textcomplete.js +++ b/public/vendor/jquery-textcomplete/jquery.textcomplete.js @@ -167,6 +167,7 @@ if (typeof jQuery === 'undefined') { var element = this.$el.get(0); // Initialize view objects. this.dropdown = new $.fn.textcomplete.Dropdown(element, this, this.option); + this.dropdown.upSideDown = false; var Adapter, viewName; if (this.option.adapter) { Adapter = this.option.adapter; @@ -556,13 +557,13 @@ if (typeof jQuery === 'undefined') { if (!this.shown) { return; } if (this.isUp(e)) { e.preventDefault(); - if(typeof upSideDown != 'undefined' && upSideDown) + if(this.upSideDown) this._down(); else this._up(); } else if (this.isDown(e)) { e.preventDefault(); - if(typeof upSideDown != 'undefined' && upSideDown) + if(this.upSideDown) this._up(); else this._down();