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

28 commits

Author SHA1 Message Date
Neil Jenkins
07b459db3b Remove support for IE<11 2020-03-11 14:48:48 +11:00
Neil Jenkins
58321e5504 Remove support for pre-Chromium Opera 2020-03-11 14:47:14 +11:00
Neil Jenkins
b36a35faf4 Remove polyfill for FF3.5
That's way too old to support any more.
2020-03-11 14:36:30 +11:00
Neil Jenkins
e1f982a3dd Detect iOS when it's an iPad pretending to be a Mac 2020-03-11 14:35:50 +11:00
Neil Jenkins
f0594091c5 Allow class names to be configured 2018-07-12 15:22:18 +10:00
Neil Jenkins
3d8cd62edb Improve copying of plain text on windows 2016-12-11 12:32:25 +11:00
Neil Jenkins
f46dee1255 Memoize node category with weak map
Fix horrendous performance of isInline etc.
2016-11-15 11:07:15 +11:00
Sungho Kim
c3d4d551ed Fix MSIE detection regex 2016-07-27 16:33:06 +09:00
Sungho Kim
96b03d4aaf Fire focus or blur event manually in focus/blur method for MSIE because
MSIE invoke focus/blur event listener asynchronously
2016-07-27 16:15:42 +09:00
Neil Jenkins
13241028f1 Workaround Android hiding the keyboard on cut. 2016-07-14 11:32:38 +10:00
Andy Kauffman
964070ee46 Path contains format values
Add values of font size, font face, and color to the path. This allows
us to distinguish path changes to different formats.
2016-07-07 16:11: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
2a8fb93cd9 Fix erroneous white-space removal when pasting inline fragment. 2015-06-23 09:46:15 +07:00
Neil Jenkins
223060ecf9 Add method to set key handlers.
Resolves #70
2015-04-29 11:16:11 +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
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
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
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
aa9afdfaf6 Code format tidying.
* Use upper-case for all tag names.
* Tidy document reference.
2014-06-02 10:17:54 +10:00
Neil Jenkins
08cc8172a8 Stop treating a non-breaking space as white-space.
Its effect is that of a normal character in HTML, that just happens to render
as a space.
2013-11-04 18:21:57 +11:00
Neil Jenkins
0b3df54b6e IE11 Compatibility 2013-10-08 16:44:08 +11:00
Neil Jenkins
6b4dda816e Make into a JS class for multiple instantiation.
* If you load the squire.js script into a top-level page rather than an iframe,
  it will add a Squire constructor to the global scope.
* The Squire constructor can be used to instantiate multiple instances on the
  same page without having to load/parse/execute the full code every time.
* For each instance, create a new iframe, then call `new Squire( document )`,
  with the document node for each iframe.
2013-06-20 23:15:18 +10:00
Neil Jenkins
87c0f3fbe1 Fix Cmd-left/right bug in Firefox on Mac OS X.
Firefox incorrectly goes back/forward in history instead of moving the cursor to
the beginning/end of the line when you press cmd-left/right on a mac. We now
override this to do the right thing.
2013-05-20 16:14:28 +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