| Age | Commit message (Collapse) | Author |
|
|
|
|
|
Find mode can hang Vimium (fixed).
|
|
Remove Coffeescript 1.10 dependency.
|
|
"/" followed immediately by "i" can hang Vimium.
The problem is that launching find mode is asynchronous (we wait until
the HUD is available). Because normal mode is still active, we can enter
insert mode *before* the find-mode HUD receives the focus.
The result is that we end up in both find mode and insert mode, the HUD
has the focus, but the HUD is in insert mode, so it ignores keyboard
events (including `Escape`).
The only way out is to click the page's body and then type `Escape`.
This commit demonstrates the problem: 7d2b00411eae3293fa4c7b1f61b384c0c495b5a2.
This happens in practice, for example while a busy page is loading.
This commit fixes this by ensuring that find-mode blocks keyboard events
immediately (and synchronously) on launch.
|
|
Fixes #2273.
Fixes #2281.
This fixes the build with Coffeescript 1.11, so we can remove the
hard-wired dependency and notes.
|
|
|
|
Follow on from 8601edd71e74ba522e32658309cb2e7acca8aeeb.
|
|
Fix Travis builds (lock down Coffeescript version)
|
|
|
|
|
|
Scripts loaded via the content-script loader previously were loaded
synchronously. In recent versions of Chrome, they now seem to be loaded
asynchrnously, which causes errors.
This is a temporary commit to keep master healthy until I (or somebody)
figures out properly what is going on.
It is expected to be reverted in due course.
|
|
Google seems to be using a lot of "title" attributes on buttons. This
makes it possible to type the text in filtered link-hints mode. (And
you can often guess the text; e.g. "close").
We could also show the title text. That is very visually noisy though,
in practice.
|
|
This tweaks the jsaction detection, in particular excluding elements
where the "actionName" is "_". I see a lot of these, and clicking them
doesn't do anything.
Also, added corresponding tests.
|
|
Thinking about it more carefully, this algorithm is always O(n^2).
|
|
Do not set the style on the active hint marker if it's in another frame.
|
|
Applies to filtered hints only.
|
|
The prevents the active element from being reset when we rotate hint
markers.
|
|
When the user selects an active hint with Tab (for filtered hints),
adjust its z-index such at it is top of the stack.
|
|
|
|
|
|
|
|
|
|
Add "all" and "other" options for toggleMuteTab.
|
|
Space rotates hints (to make hidden hints visible).
|
|
|
|
|
|
It is common for link-hint markers to be close togother, and
overlapping.
Here, `<Space>` rotates hint markers such that hidden markers become
visible.
For filtered hints we additionally require a modifier (because `<space>`
on its own is already a token separator).
The calculation of overlapping hints is quite expensive: O(n^2) in the
best case and O(n^3) in the worst cast. The worst case is
extraordinarily unlikely to arise in practice.
|
|
|
|
|
|
This adds advanced options for toggleMuteTab.
Examples:
map X toggleMuteTab all
map Y toggleMuteTab other
In the first case, all audible, unmuted tabs are muted; otherwise all
muted tabs are unmuted.
The second case is the same, except that the current tab is excluded
from consideration.
Follow on from #2269.
|
|
This only affects key mappings of three keys or longer.
Consider:
map goa something
map gob something
Previously, we launched the vomnibar (`o`) on the after `go`, making
these mappings unusable.
This commit fixes that: `go` no longer launches the Vomnibar, but waits
instead to see what the next key is.
|
|
Use prefix matching for global marks.
|
|
|
|
|
|
|
|
Instead of setting a property of document for `scrollingElement` (if it
is not defined), just use a function and make the decision dynamically
instead.
|
|
|
|
|
|
|
|
This fixes Vimium with the 'Experimental Web Platform Features' flag
enabled, and ensures compatibility across quirks mode scrolling (via
document.body) and standards-compliant scrolling (via
document.documentElement).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If the user is jumping to a scroll position within a tab, then we need
an exact match on the URL (because otherwise the scroll position doesn't
really have a meaning). Otherwise we only require a prefix match, a la #2250.
|
|
This changes the logic for selecting an existing tab when using global marks.
Previously, an exact RUL match was required. Here, we only require a prefix match.
For example, if the global-mark URL is:
https://inbox.google.com/u/0/
Then a tab with the URL
https://inbox.google.com/u/0/sent
will be selected.
This is a more usable approach when the user uses global marks to visit
important sites like gmail, Facebook or Twitter. On these sites, the
URL changes, but the user still thinks of the tab as their "gmail tab",
for example.
Also, when choosing between multiple candidate tabs:
- If there is at least one candidate in the current window, then only consider candidates in the current window.
- If there are more than one candidates, then don't select the current tab.
- Finally, select the remaining candidate with the shortest URL.
Closes #2248.
|