mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 21:48:00 +01:00
Fix some hint bugs.
This commit is contained in:
@@ -1529,6 +1529,8 @@ function Events() //{{{
|
||||
return void killEvent();
|
||||
}
|
||||
|
||||
// All of these special cases for hint mode are driving
|
||||
// me insane! -Kris
|
||||
if (modes.extended & modes.HINTS)
|
||||
{
|
||||
// under HINT mode, certain keys are redirected to hints.onEvent
|
||||
@@ -1538,6 +1540,7 @@ function Events() //{{{
|
||||
|| (/^[0-9]$/.test(key) && !hints.escNumbers))
|
||||
{
|
||||
hints.onEvent(event);
|
||||
input.buffer = null;
|
||||
return void killEvent();
|
||||
}
|
||||
|
||||
@@ -1664,6 +1667,7 @@ function Events() //{{{
|
||||
finally
|
||||
{
|
||||
let motionMap = (input.pendingMotionMap && input.pendingMotionMap.names[0]) || "";
|
||||
if (input.buffer !== null)
|
||||
statusline.updateInputBuffer(motionMap + input.buffer);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -556,6 +556,23 @@ function Hints() //{{{
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkUnique()
|
||||
{
|
||||
if (hintNumber > validHints.length)
|
||||
return void liberator.beep();
|
||||
|
||||
// if we write a numeric part like 3, but we have 45 hints, only follow
|
||||
// the hint after a timeout, as the user might have wanted to follow link 34
|
||||
if (hintNumber > 0 && hintNumber * 10 <= validHints.length)
|
||||
{
|
||||
let timeout = options["hinttimeout"];
|
||||
if (timeout > 0)
|
||||
activeTimeout = setTimeout(function () { processHints(true); }, timeout);
|
||||
}
|
||||
else // we have a unique hint
|
||||
processHints(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle user input.
|
||||
*
|
||||
@@ -942,15 +959,11 @@ function Hints() //{{{
|
||||
{
|
||||
liberator.beep();
|
||||
modes.reset();
|
||||
return false;
|
||||
}
|
||||
else if (validHints.length == 1)
|
||||
{
|
||||
processHints(false);
|
||||
return false;
|
||||
}
|
||||
else // still hints visible
|
||||
return true;
|
||||
else
|
||||
checkUnique();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1054,22 +1067,10 @@ function Hints() //{{{
|
||||
}
|
||||
showActiveHint(hintNumber, oldHintNumber || 1);
|
||||
|
||||
if (hintNumber == 0 || hintNumber > validHints.length)
|
||||
if (hintNumber == 0)
|
||||
return void liberator.beep();
|
||||
|
||||
// if we write a numeric part like 3, but we have 45 hints, only follow
|
||||
// the hint after a timeout, as the user might have wanted to follow link 34
|
||||
if (hintNumber > 0 && hintNumber * 10 <= validHints.length)
|
||||
{
|
||||
let timeout = options["hinttimeout"];
|
||||
if (timeout > 0)
|
||||
activeTimeout = setTimeout(function () { processHints(true); }, timeout);
|
||||
|
||||
return false;
|
||||
}
|
||||
// we have a unique hint
|
||||
processHints(true);
|
||||
return;
|
||||
checkUnique();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user