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();
|
return void killEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// All of these special cases for hint mode are driving
|
||||||
|
// me insane! -Kris
|
||||||
if (modes.extended & modes.HINTS)
|
if (modes.extended & modes.HINTS)
|
||||||
{
|
{
|
||||||
// under HINT mode, certain keys are redirected to hints.onEvent
|
// under HINT mode, certain keys are redirected to hints.onEvent
|
||||||
@@ -1538,6 +1540,7 @@ function Events() //{{{
|
|||||||
|| (/^[0-9]$/.test(key) && !hints.escNumbers))
|
|| (/^[0-9]$/.test(key) && !hints.escNumbers))
|
||||||
{
|
{
|
||||||
hints.onEvent(event);
|
hints.onEvent(event);
|
||||||
|
input.buffer = null;
|
||||||
return void killEvent();
|
return void killEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1664,7 +1667,8 @@ function Events() //{{{
|
|||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
let motionMap = (input.pendingMotionMap && input.pendingMotionMap.names[0]) || "";
|
let motionMap = (input.pendingMotionMap && input.pendingMotionMap.names[0]) || "";
|
||||||
statusline.updateInputBuffer(motionMap + input.buffer);
|
if (input.buffer !== null)
|
||||||
|
statusline.updateInputBuffer(motionMap + input.buffer);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -556,6 +556,23 @@ function Hints() //{{{
|
|||||||
return true;
|
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.
|
* Handle user input.
|
||||||
*
|
*
|
||||||
@@ -942,15 +959,11 @@ function Hints() //{{{
|
|||||||
{
|
{
|
||||||
liberator.beep();
|
liberator.beep();
|
||||||
modes.reset();
|
modes.reset();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
else if (validHints.length == 1)
|
else if (validHints.length == 1)
|
||||||
{
|
|
||||||
processHints(false);
|
processHints(false);
|
||||||
return false;
|
else
|
||||||
}
|
checkUnique();
|
||||||
else // still hints visible
|
|
||||||
return true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1054,22 +1067,10 @@ function Hints() //{{{
|
|||||||
}
|
}
|
||||||
showActiveHint(hintNumber, oldHintNumber || 1);
|
showActiveHint(hintNumber, oldHintNumber || 1);
|
||||||
|
|
||||||
if (hintNumber == 0 || hintNumber > validHints.length)
|
if (hintNumber == 0)
|
||||||
return void liberator.beep();
|
return void liberator.beep();
|
||||||
|
|
||||||
// if we write a numeric part like 3, but we have 45 hints, only follow
|
checkUnique();
|
||||||
// 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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user