0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 23:40:35 -05:00
Commit graph

201 commits

Author SHA1 Message Date
Neil Jenkins
5b8e348232 Fix invalid caching of selection nodes in paste handler.
Fixes error thrown when pasting text twice in succession (or more generally,
when pasting it into non-normalised text nodes).
2015-02-06 14:18:38 +07:00
Neil Jenkins
8f83ef32c3 Fix typo in Makefile 2015-02-06 14:17:36 +07:00
Neil Jenkins
dfed911833 Add .jshintrc file so JSHint checks it correctly.
Resolves #25.
2015-01-08 12:25:54 +07:00
Neil Jenkins
8e8874b554 Don't fire an input event on setHTML call. 2014-12-30 10:22:39 +07:00
Neil Jenkins
249ea93c13 Allow defaultBlockTag to be configured
Resolves #23
2014-12-27 15:02:26 +07:00
Neil Jenkins
b69a1635de Use mutation observers where possible to detect change
We need to know when the document is modified in order to fire an "input" event
and set the undo/redo state correctly. Observing keyup is imprecise, as it's
hard to tell whether the key press actually modified anything. Newer browsers
support mutation observers, which tell you precisely when something has changed.
For IE9/10, Opera 12 and other older browsers, we fall back to observing keyup
again.

Fixes #26.
2014-12-27 13:48:15 +07:00
Neil Jenkins
5b5d65f684 Record undo checkpoint before deleting any selection. 2014-12-26 20:04:42 +07:00
Neil Jenkins
797dbf46fb Fix selection lost on action in Presto 2014-12-26 20:01:36 +07:00
Neil Jenkins
54b428aaa6 Fix deleting selection across block boundary. 2014-12-26 14:48:13 +07:00
Neil Jenkins
a46dc2ef02 Take over selection deletion in more cases.
Never really want to let the browser delete a selection; it always makes a mess
of it. This now covers the case when an English letter key or number key is
pressed when a selection exists. Handling this completely (to include all keys
that produce a symbol) is tricky due to cross-browser key event compatibility
issues.
2014-12-26 14:27:19 +07:00
Neil Jenkins
4a264a52c7 Replace feature test w/ UA sniff for buggy splitText. *sigh*
The feature test is sometimes passing in IE9, but then the buggy behaviour
still appears later. FFS IE.
2014-12-26 14:26:29 +07:00
Neil Jenkins
805f3cffff Remove last remnants of IE8 support. 2014-12-26 14:24:22 +07:00
Neil Jenkins
90623a51a2 Clean up empty inlines when deleting selection.
Fixes #6
2014-12-25 15:09:46 +07:00
Neil Jenkins
5b52467815 Fix inserting line break at start of link
Before, hitting enter at the start of the link would result in the link text
being removed from an <a> on the new line, and an empty <a> tag on the previous
line. Now the link remains on the new line as expected, and no empty <a> tag is
produced.

in the preceding block.
2014-12-25 11:39:07 +07:00
Neil Jenkins
f781e07b23 Ensure space is inserted after link if cursor at end of <a> tag
If your cursor is at the end of a link, ensure pressing space always inserts
the space outside of the <a> tag.
2014-12-24 14:24:25 +07:00
Neil Jenkins
824a3b0a3b Resolves #22. 2014-12-20 17:07:11 +11:00
Neil Jenkins
10e17557a8 v1.0.0
It's stable, it's in production; might as well call this 1.0 :)
2014-12-16 10:38:17 +11:00
Neil Jenkins
6cd0c0d272 Merge pull request #16 from craigmarvelley/master
Expose list nesting level in README and demo toolbar.
2014-12-12 10:32:26 +11:00
Craig Marvelley
2d7addd04e Add list level manipulation actions to demo toolbar 2014-12-11 12:35:48 +00:00
Craig Marvelley
8d604d7deb Add increaseListLevel and decreaseListLevel API methods to README 2014-12-11 11:36:42 +00:00
Neil Jenkins
f41c706b76 Merge pull request #12 from grupawp/master
License file name in README.md
2014-12-10 14:55:52 +11:00
Neil Jenkins
2ad3ccf640 Update README API docs and add link to demo. 2014-12-10 14:47:11 +11:00
Rafał Filipek
a7b9381231 LICENSE file name 2014-12-09 07:47:33 +01:00
Rafał Filipek
a73417457b LICENSE file name 2014-12-09 07:46:31 +01:00
Neil Jenkins
6f53440400 Minor license/readme update. 2014-12-09 11:00:28 +11:00
Neil Jenkins
cdfb667f83 Merge pull request #9 from grupawp/master
Thanks!
2014-12-09 10:38:42 +11:00
Rafał Filipek
0394b4c3d8 Updated Makefile 2014-12-08 10:46:35 +01:00
Rafał Filipek
65e2f62073 Default .gitignore 2014-12-08 10:46:15 +01:00
Rafał Filipek
9107a34ee5 Missing package.json 2014-12-08 10:46:01 +01:00
Rafał Filipek
608c498f95 Missing bower.json 2014-12-08 10:45:52 +01:00
Rafał Filipek
cd30857ba4 Convention 2014-12-08 10:45:30 +01:00
Neil Jenkins
25f78ff31d Fix cursor no longer appears on focus in Chrome. 2014-12-07 14:33:43 +07:00
Neil Jenkins
ae38caba31 Remove IE8 support.
It was always a bit buggy, and realistically there's no point in putting in the
time to fix it up.
2014-11-29 20:08:53 +07:00
Neil Jenkins
cb9292721c Let the browser handle shift-delete.
Apparently it's "cut" on Windows. Who knew.
2014-11-20 12:45:36 +07:00
Neil Jenkins
3296e7576e Register for events on capture rather than bubble phase.
Allows "load" events to be triggered for images in the document.
2014-11-18 12:02:36 +07:00
Neil Jenkins
73c4146e27 Fix range error in addFormat if start == end container. 2014-10-03 16:38:20 +07:00
Neil Jenkins
b944eb3b3b Fix ZWS removal when Squire script not in iframe. 2014-10-02 16:36:39 +07:00
Neil Jenkins
e7cef49818 Rename isOpera -> isPresto.
Opera now uses WebKit, but these tweaks are only for the Presto version.
2014-10-02 16:23:30 +07:00
Neil Jenkins
a408fcaca6 Fix range construction in addFormat method. 2014-10-02 16:00:35 +07:00
Neil Jenkins
6080cbf819 Add Squire#destroy method.
Unbinds all event handlers to ensure no memory leaks.
2014-10-02 12:06:17 +07:00
Neil Jenkins
d21ae23215 Record undo checkpoint before paste or delete. 2014-10-01 10:12:58 +07:00
Neil Jenkins
c0e33843fb Use helper fn to get start block in paste handler.
Neater and deals with the edge cases.
2014-09-24 16:36:14 +07:00
Neil Jenkins
597024eecb Remove FILTER_(ACCEPT|SKIP) constants.
Just return a boolean for the TreeWalker filter fn. This diverges from the spec,
but since the goal of this implementation is not to fully implement the spec
and we're never going to use a native implementation, this doesn't matter and
the code is easier to read when the function is just returning a boolean like
any normal filter function.
2014-09-04 17:24:31 +07:00
Neil Jenkins
a280cb4946 Improve detection of range at begin/end of block. 2014-09-03 11:17:14 +07:00
Neil Jenkins
4a8152d280 Remove zws in key handlers they could affect. 2014-09-03 09:21:16 +07:00
Neil Jenkins
d5e8ef1381 Preserve inline styles on enter in WebKit. 2014-08-28 08:17:07 +07:00
Neil Jenkins
da49316876 Better positioning of paste area to prevent auto-scrolling. 2014-08-06 14:42:57 +02:00
Neil Jenkins
afd3e9807c Be more careful about splitting nodes to remove <br>s.
Can't split an <li> to remove a <br>.
2014-08-05 13:44:41 +01:00
Neil Jenkins
1fac17b514 Don't strip WS between two inline nodes. 2014-08-05 10:58:22 +01:00
Neil Jenkins
3b95f7b864 Better parsing of links and emails into links.
* Be more liberal in tld, as there are now a billion new ones, of every length.
* Fix bug where if the URL contains an @ it would add it as a mailto link
  instead.
2014-07-03 14:16:20 +01:00