The function in charge of actually converting cursor offset to
CodeMirror line number and character number was actually crashing when
the cursor was at the last character (loop until undefined, then access
length of variable, which is undefined).
This was hiding a bug in which when you would completer to a single
completion pressing tab after as-you-type filtering, the completion
would be completed twice.
The logic that was supposed to detect whether or not all completions had
a common prefix was actually faulty as the common prefix used to be a
string but was then changed to an object. Hence the logic to check
whether or not there was actually a common prefix was always true, even
for empty string, leading to the deletion of the line (replace by '') in
some cases.
prevents esc from entering command mode when it's
meant to dismiss the tooltip.
The logic for the event was already there,
it just lacked the `ipkmIgnore` bit.
OS X has optional behavior to only draw scrollbars during scroll,
which causes problems for CodeMirror's scrollbars.
CodeMirror's solution is to set a minimum size for their
scrollbars, which is always present.
The trade is that the container overlays most of the last line,
swallowing click events when there is scrolling to do,
even when no scrollbar is visible.
This reverses the trade, recovering the click events at the expense of
never showing the horizontal scrollbar on OS X when this option is enabled.
fixes check for the case where kernelspec info is coming from the kernel,
rather than notebook metadata.
This case was getting skipped by a bad check on `_session_starting`.
OutputArea.collapsed should only be assigned inside expand/collapse methods
setting `collapsed = false` when it actually is collapsed prevents expand from having any effect,
resulting in apparently invisible output.