to add new flags (pass a flag in the constructor, rather than specific
booleans. This in order to fix:
11249: Add flag to write only the body in html output.
The owner of the editor can now initialize the editor,
set up its own listeners if it wants to, then the editor will set up it's own
backstop listeners as part of PostCreate().
The backstop key listener now ignores ENTER for single line text controls.
Ugly to have to do it here, it would be better if the owner could just swallow the key event.
(and fix type in obsolete text editor);
Partial work toward 11390, use style rather than embedded PRE for wrapping
(unfinished, currently ifdefed out).
Added some comments of the form "// XXX: ERROR_HANDLING <explanation>"
wherever I saw a potential error but wasn't 100% sure of the intention of the code.
Fixed a few bugs along the way.
editor/base/Makefile.in
editor/base/makefile.win
- Modified makefiles build files that were
renamed, and use new define to build the
API Logging code.
editor/base/nsEditor.cpp
editor/base/nsEditor.h
editor/base/nsHTMLEditor.cpp
- Removed all ENABLE_JS_EDITOR_LOG ifdef'd code.
- Removed all references to nsVector.h.
editor/base/nsEditorFactory.cpp
- Added ENABLE_EDITOR_API_LOG ifdef'd code
that will create an instance of nsHTMLEditorLog
instead of nsHTMLEditor.
editor/base/nsEditorTxnLog.cpp
- Initial checkin of file. File was originally named nsJSTxnLog.cpp.
editor/base/nsEditorTxnLog.h
- Initial checkin of file. File was originally named nsJSTxnLog.h.
editor/base/nsHTMLEditorLog.cpp
- Initial checkin of file. File was originally named nsJSEditorLog.cpp.
- nsHTMLEditorLog.cpp now derives from nsHTMLEditor, and only
overrides methods that modify the content tree and are publicly
available via XPIDL.
editor/base/nsHTMLEditorLog.h
- Initial checkin of file. File was originally named nsJSEditorLog.h.
- nsHTMLEditorLog.cpp now derives from nsHTMLEditor, and only
overrides methods that modify the content tree and are publicly
available via XPIDL.
and bug #10815 (Crash deleting selected text and table)
mozilla/editor/base/nsHTMLEditRules.cpp
- Added check, in WillDeleteSelection(), to see if
endpoints of the range are in the body before calling
GetBlockNodeParent(). (Bug #10231)
- Modified GetPromotedPoint() to check for NULL in the
case where aWhere == kEnd and GetChildAt() returns NULL.
(Bug #10815)
mozilla/layout/base/src/nsGenericElement.cpp
- Modified RangeAdd() so that it doesn't add
a range if it's already in the list. (Bug #10231)
mozilla/layout/base/src/nsRangeList.cpp
- Modified GetPrimaryFrameForFocusNode() to
initialize aReturnFrame and to return a failure
if ChildAt() returns NULL. (Bug #10231)
1) fixed unit tests
2) fixed a bunch of leaks having to do with using enumerators. Thanks for noticing these, Simon.
3) fixed a tiny problem in nsTextEditRules::WillDoAction().
This method was overly aggressive in checking input args, sel can be null for some operations.
a mime type and a flag argument. Also fix the following bugs:
9746: get rid of bogus empty <style> in head.
8143: save wrap column in editor shell in case it's set before the
editor is created.
9470, 9488: allow explicit specification of formatted output.
1. IsEditable is much less hacky. It basically says:
1. if the node is a special bogus text node, it's not editable
2. if the node is a text node with only newlines, then it's not editable
3. if the node has no frame associated with it, then it is not editable
4. otherwise, it is editable.
As part of this, I had to make IsEditable non-static. This had some cascading effects on static methods that called
IsEditable, which likewise had to be made non-static.
2. SetTextProperties now works when the endpoints are leaf nodes (like images), not just text. Charlie, you should
put this through some stress cases.
nsIHTMLEditor, nsITextEditor, and nsIEditorShell and enabled
the "Start Log" and "End Log" menu items in the editor test bed.
* Modified makefiles for Unix and Win32 to turn on Editor API Logging.
* Added action argument to the DeleteSelection() method in nsIEditorShell.
* Modified nsJSTxnLog to use nsJSEditorLog when writing it's output.
for HTML and CSS atoms, since we can't get these from layout yet. The old
use assumed one editor, but as we know many editors can exist simultaneously.
Now, the editors share a singleton which is fetched from a factory method,
saving memory and allocation overhead.
This checkin adds the implementations for encoding
HTML and plain text:
nsTextEncoder::EncodeToString(..)
nsHTMLEncoder::EncodeToStream(..)
Hooked these services into the nsHTMLEditor implemenation
We probably want to update the clipboard code to
use the same pattern as in nsHTMLEditor.cpp