From f55f2d50d4072bfe2e94cf367f83108014d453cc Mon Sep 17 00:00:00 2001 From: dsp74118 Date: Fri, 18 May 2012 00:11:31 +0900 Subject: Fix multi-digit hint problem. --- bookmarktoolbar-hint.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'bookmarktoolbar-hint.js') diff --git a/bookmarktoolbar-hint.js b/bookmarktoolbar-hint.js index ae3ea70..363455d 100644 --- a/bookmarktoolbar-hint.js +++ b/bookmarktoolbar-hint.js @@ -2,7 +2,7 @@ // @name BookmarksToolbar-Hint // @description Feature the BookmarksToolbar-Hint // @description-ja ブックマークツールバーのヒント機能を提供 -// @version 0.2d +// @version 0.2e // ==/VimperatorPlugin== // // Usage: @@ -43,7 +43,11 @@ liberator.plugins.bookmarkToolbarHints = (function(){ } function updateSelector(){ for (let i=0; i": - if (key == "" && currentNum > 0){ - currentNum = Math.floor(currentNum / 10); + if (key == "" && pressedNum.length > 0){ + pressedNum = pressedNum.substring(0,pressedNum.length - 1); + currentNum = pressedNum.length > 0 ? parseInt(pressedNum,10) : 0; + useShift = pressedNum.length == 0; updateSelector(); return; } @@ -162,15 +170,16 @@ liberator.plugins.bookmarkToolbarHints = (function(){ return; default: if (/^[0-9]$/.test(key)){ - let num = parseInt(key,10); - if (!useShift && currentNum) num += currentNum * 10; - + useShift = false; + pressedNum += key; + let num = parseInt(pressedNum,10); if (hints.length >= num*10){ currentNum = num - 1; updateSelector(); return; } if (hints[num-1]){ + pressedNum = ""; if (toolbarOpen(hints[num-1])) return; } } @@ -180,6 +189,7 @@ liberator.plugins.bookmarkToolbarHints = (function(){ }, quit: function(){ currentNum = 0; + pressedNum = ""; useShift = false; window.removeEventListener('keypress',onKeyPress,true); liberator.modules.modes.reset(true); -- cgit v1.2.3