closes#3391
For users who need to hide the scrollbars while zooming text in the meantime, you can add the following to your custom.css:
```css
.CodeMirror-scroll, .CodeMirror-wrap .CodeMirror-scroll {
overflow: scroll;
}
.CodeMirror-vscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-hscrollbar {
visibility: hidden;
}
```
switch default ws_url logic to js side
In some cases (proxies, #3305), the request object doesn't have the right information about the originating information. This changes the default behavior, so that ws_url is generally empty by default, which the javascript takes to mean 'the same as http'. This is simpler and should be more resilient than trying a guess on server-side.
also replaces unused websocket_host with websocket_url
Rather than specifying only the hostname, it makes much more sense to specify the whole protocol,host,port in a single go.
Use different treshold for (auto)scroll in output
Use different treshold for (auto)scroll in output
Allow, in particular to switch to scolling for longer input (or disable
it) by still keeping the possibility to manually toggle the output to
scroll.
cf jsdoc,
OutputArea.auto_scroll_threshold
and
OutputArea.minimum_scroll_threshold
OutputArea.auto_scroll_threshold < 0 will prevent auto_scroll from ever happening.
used in comparison check for notebook name change.
Unless the filenames are normalized, unchanged names may result in false positives for a name change (e.g. OS X uses NFD on the filesystem, so u'\xfc' roundtripped to the filesystem will be u'u\u0308'), which can result in the first save of a notebook after open performing the following actions:
save the recently opened notebook
old_name != new_name, so name change detected
delete old_name (which is actually new_name), which ultimately deletes the just-saved notebook
In master, this has a symptom of the first checkpoint failing because the first save actually deleted the file, and you can't checkpoint a notebook that doesn't exist.
closes#3360
Make submodule checks work under Python 3
introduces a regression in the submodule check for people who may have fetched a tarball from GitHub,
which will now install an incomplete IPython.
In some cases (proxies, #3305), the request object doesn't have the right information about the originating information. This changes the default behavior, so that `ws_url` is generally empty by default, which the javascript takes to mean 'the same as http'. This is simpler and should be more resilient than trying a guess on server-side.
instead of random.
The random cookie name meant that every time you restarted the notebook it would get a new key in the cookie for the same host, resulting in an ever-growing cookie full of obsolete data.
used in comparison check for notebook name change.
Unless the filenames are normalized,
unchanged names may result in false positives for a name change
(e.g. OS X uses NFD on the filesystem,
so u'\xfc' roundtripped to the filesystem will be u'u\u0308'),
which can result in the first save of a notebook after open performing the following actions:
1. save the recently opened notebook
2. `old_name != new_name`, so name change detected
3. delete old_name (which is actually new_name), which ultimately deletes the just-saved notebook
In master, this has a symptom of the first checkpoint failing because the first save actually deleted the file, and you can't checkpoint a notebook that doesn't exist.
closes#3360
always draw scrollbar margin, so that inappropriate scrollbars never overlap the last line.
To compensate for the extra space, the margin between the scrollbar and the last line is shrunk significantly.
Organize the JS and less files by component, in the `static` directory of the notebook.
This PR does the client side re-org that parallels the server side work in #3321. There are now subdirectories in `static/` for each part of the client; roughly speaking there is one subdir for each page, web service or component.