Neil Jenkins
033370ebee
Don't try to merge table cell into block on paste
2017-09-04 10:22:49 +10:00
Neil Jenkins
48fabd491a
Improved algorithm for inserting tree into range
...
Fixes #283
2017-07-19 14:29:16 +02:00
Neil Jenkins
9596f4ecf8
Ensure moving boundaries up tree never passes root
2017-01-13 15:15:59 +11:00
Neil Jenkins
6f83f23881
Fix delete behaviour
...
1. Fixes cursor position when deleting starting with a selection at beginning
of block.
2. Fixes block disappears when whole inline contents is deleted.
2017-01-10 10:06:28 +11:00
Neil Jenkins
30dc11fd3c
If deleting range to start/end of doc, collapse into a block
2016-12-09 10:41:52 +11:00
Neil Jenkins
d8239d2570
Skip placeholder BRs when moving range up/down tree
2016-09-25 21:43:47 +01:00
Neil Jenkins
78b638f79b
Ensure root node is never returned by get(Start|End)BlockOfRange
...
Fixes #237
2016-09-22 09:44:03 +01:00
Neil Jenkins
766dea7ccf
Merge inlines when inserting node into range
2016-07-14 12:15:06 +10:00
Neil Jenkins
7ecf75f246
Fix determining if at start of block when at end of doc
...
Fixes #190
2016-05-26 11:42:53 +10:00
Andy Kauffman
4e7e290fbc
Fix block boundary issue
...
If the node is at the end of the document, this method can fail with
'TypeError: Cannot read property 'previousSibling' of null'
2016-05-19 10:28:46 +10:00
Neil Jenkins
44a2b5c7a8
Add guard for null nodes in insertTreeFragmentIntoRange
2016-04-08 17:42:47 +10:00
Neil Jenkins
66c0b20702
Squire: Fix possible error when deleting range
2016-04-07 13:08:45 +10:00
Neil Jenkins
6a348e084b
Make Squire work without an iframe(!)
2016-03-23 17:41:09 +11:00
Neil Jenkins
6413034884
Improve copy/paste
...
* In browsers that support it, we now tell it to copy exactly what was selected
in the DOM, and not to add extra gunk which browsers do to preserve exact
styling if pasted into another document.
* Don't use the clipboard APIs with MS Edge, since it only supports plain text.
If we let it fallback to the browser implementation it will insert HTML.
2016-03-11 15:22:49 +11:00
Neil Jenkins
9461368a5c
Fix whitespace errors.
...
Thanks to @gertsonderby who pointed these out in #138 .
2015-09-28 15:48:23 +02:00
Neil Jenkins
c190fab9fd
Fix deletion of range when start or end is at edge of block.
...
If the selection starts and ends in the middle of blocks, we need to merge
these after extracting the range. But we need to be careful not to merge if
the selection ends at a block, as we end up merging into a block that wasn't
selected.
2015-07-25 18:03:51 -07:00
Neil Jenkins
e90f18dba9
Fix inserting partial inlines in insertTreeFragmentIntoRange
...
Needs to account for browser "<br>"s inside blocks.
2015-06-19 14:18:07 +07:00
Neil Jenkins
c25bfe8a9f
Fix error thrown inserting tree fragment at start/end of document.
2015-06-17 15:43:50 +07:00
Neil Jenkins
e59e6418af
Improve merging edges of inserted tree fragment.
...
Fixes #87 .
2015-06-12 17:48:06 +07:00
Neil Jenkins
73ca65edb5
Fix pasting multiple lines into a blockquote.
...
Pasting is hard to get right in the general case, not least because the
browsers give so little control over the process, leaving you to resort to
crappy hacks. But we can special case the pasting to a blockquote case fairly
easily, and I can't see any particular regression it should cause.
Fixes #59 .
2015-04-09 20:16:04 +07:00
Neil Jenkins
1c0fa1a50f
Rewrite getSelectedText method.
...
Fixes #57 .
* Fixes bug where it could return text outside selection
* Inserts new line between blocks.
2015-04-08 17:13:21 +07:00
Allen Heavey
eced74244d
fix typo: ndoes -> nodes
2015-03-19 14:55:45 +08:00
Neil Jenkins
ed0ebdae49
Merge adjacent text nodes after extracting range.
2015-03-04 14:50:44 +08:00
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
dfed911833
Add .jshintrc file so JSHint checks it correctly.
...
Resolves #25 .
2015-01-08 12:25:54 +07:00
Neil Jenkins
54b428aaa6
Fix deleting selection across block boundary.
2014-12-26 14:48:13 +07:00
Neil Jenkins
b944eb3b3b
Fix ZWS removal when Squire script not in iframe.
2014-10-02 16:36:39 +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
7812b8db23
Turn Range prototype extensions into functions.
...
A step towards being able to share code between multiple concurrent instances of
the editor. Also reduces minified size slightly.
2013-06-20 21:03:01 +10:00
Neil Jenkins
af1720282c
Replace Node prototype extensions with normal fns.
...
* Firefox was sometimes not finding the extensions on elements.
* This minifies to a smaller target.
2013-04-08 13:27:06 +10:00
Neil Jenkins
b35b7d4b35
Fix bug in Range#insertTreeFragment
...
Merging containers could remove the nodeAfterSplit from the tree, which then
caused an error to be thrown if it had no content, as the code would try to
remove it again.
2013-01-30 11:30:11 +11:00
Neil Jenkins
fe6ffb0ed5
Add IE10 compatibility.
...
* All UA detection moved into a separate file.
2012-11-12 18:30:40 +11:00
Neil Jenkins
f2090b05d0
Tidy. Ensure trailing new line in all source files
2012-08-07 13:36:05 +10:00
Neil Jenkins
a9a0ac6411
Fix bug where image may be duplicated on enter.
...
* Do not move range boundaries inside images; these should always be treated as
leaf nodes.
* Workaround FF bug where it may return range as being inside of image node.
2012-08-01 11:53:37 +10:00
Neil Jenkins
c595fb0bb8
Fix cursor location after Range::_deleteContents
...
Should always collapse to start.
2012-04-04 15:11:27 +10:00
Neil Jenkins
6480739143
Update copyright year.
2012-04-02 15:55:33 +10:00
Neil Jenkins
f0ba6216cc
Add support for IE8.
2012-04-02 15:55:33 +10:00
Neil Jenkins
e3ee4dad12
Whitespace cleanup.
2012-01-25 11:47:26 +11:00
Neil Jenkins
143eea15cb
Fix cursor when deleting range contents
2011-11-15 21:46:11 +11:00
Neil Jenkins
feca3e4d8f
Make forEachBlock method public.
...
And tidy a few bits and pieces.
2011-11-14 17:55:40 +11:00
Neil Jenkins
a2ef14e218
Add make/remove link sugar.
...
Also:
Add getSelectedText method.
Fix bug in setting HTML after undo/redo in Opera.
2011-11-10 18:31:07 +11:00
Neil Jenkins
3b09cbf703
Improve cleaning of inserted content.
2011-11-04 16:53:12 +11:00
Neil Jenkins
28c9ab10a9
Fix FF deleting everything on cut.
2011-11-03 17:05:18 +11:00
Neil Jenkins
0f750d2a0e
Fix Range#get(Start|End)Block.
...
Was still returning the wrong result in certain situations (for example when the
start boundary was just before the end of a block).
2011-11-03 12:10:16 +11:00
Neil Jenkins
e8a917f321
Fix Range#containsNode.
...
Not sufficient for node to be adjacent to range; must actually contain range.
2011-11-02 19:12:31 +11:00
Neil Jenkins
a91df2db4c
Ensure range is valid after Range#_deleteContents.
2011-11-02 18:46:18 +11:00
Neil Jenkins
9dcbf45f4a
Fix Range#get(Start|End)Block.
2011-11-02 16:31:46 +11:00
Neil Jenkins
1d5b841860
Fix bug in deleting all.
2011-11-02 11:54:58 +11:00
Neil Jenkins
f245cc0dba
Fix Range#get(Start|End)Block methods.
2011-10-31 13:08:51 +11:00