Added an "InteractiveAnnotation" class to homogenize the annotations' structure (highlighting) and user interactions (for now, used for text and link annotations).
Text annotations:
The appearance (AP) has priority over the icon (Name).
The popup extends horizontally (up to a limit) as well as vertically.
Reduced the title's font size.
The annotation's color (C) is used to color the popup's background.
On top of the mouseover show/hide behavior, a click on the icon will lock the annotation open (for mobile purposes). It can be closed with another click on either the icon or the popup.
An annotation printing is conditioned by its "print" bit
Unsupported annotations are not displayed at all.
Previously, reconstruction of arguments was incorrect if arguments contained
arrays. Arrays were added to arguments as their elements and not as a whole
array. It is enough to simply pass whole array to concat and it will be (only
one level deep) added to arguments.
In addition, we call slice on arguments for maximum compatibility (it is used
in Underscore.js library, with which I was comparing implementations while
debugging).
Restrict the scrollbar hack to the keycode for "spacebar",
since the bug only occurs in Firefox with spacebar.
Keyboard navigation is only activated for the spacebar if
the currently focused element is not a button.
These lines were introduced in 612f59aa10
when the only shortcuts were +/-/=/0 (to change zoom level).
Back then, when the input fields were focused, using these keys would
add these unwanted characters to the input field and change the zoom
level of the viewer. Having both operations at the same time was an
undesired event, so a check was inserted, to ignore shortcuts when
the toolbar is focused.
The #toolbar element doesn't exist any more, so these lines are obsolete.
The previous version interfered with the full screen shortcut
(Ctrl + Alt + P).
The new version only intercepts Cmd/Ctrl + P (all browsers).
And Ctrl + Shift + P in Chrome / Opera (Presto and Chromium),
because these browsers also associate a Print operation with
the shortcut.