summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/EditorEventListener.h
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-06-26 13:55:33 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-06-26 13:55:33 +0200
commit6aa47456c3d5d1952212ff3e970f617e5f6f3617 (patch)
tree2f64682d3e1b84c0fa924c3c4238a4d8421f5b03 /editor/libeditor/EditorEventListener.h
parenta7bc62dcfe5495c8b53532c1b585af07171b4403 (diff)
downloadUXP-6aa47456c3d5d1952212ff3e970f617e5f6f3617.tar
UXP-6aa47456c3d5d1952212ff3e970f617e5f6f3617.tar.gz
UXP-6aa47456c3d5d1952212ff3e970f617e5f6f3617.tar.lz
UXP-6aa47456c3d5d1952212ff3e970f617e5f6f3617.tar.xz
UXP-6aa47456c3d5d1952212ff3e970f617e5f6f3617.zip
Issue #12 Part 3: EditorEventListener should check if it's removed during a call of editor's method.
EditorEventListener doesn't check if mEditorBase is available even after it's removed from the editor. If it becomes nullptr, i.e., it's detached from editor, it shouldn't continue to handle event. This patch changes some methods' nsIDOM*Event argument to WidgetEvent since it's simpler.
Diffstat (limited to 'editor/libeditor/EditorEventListener.h')
-rw-r--r--editor/libeditor/EditorEventListener.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/editor/libeditor/EditorEventListener.h b/editor/libeditor/EditorEventListener.h
index 505b711c7..7244ebea4 100644
--- a/editor/libeditor/EditorEventListener.h
+++ b/editor/libeditor/EditorEventListener.h
@@ -6,6 +6,7 @@
#ifndef EditorEventListener_h
#define EditorEventListener_h
+#include "mozilla/EventForwards.h"
#include "nsCOMPtr.h"
#include "nsError.h"
#include "nsIDOMEventListener.h"
@@ -60,14 +61,14 @@ protected:
nsresult KeyUp(nsIDOMKeyEvent* aKeyEvent);
#endif
nsresult KeyPress(nsIDOMKeyEvent* aKeyEvent);
- nsresult HandleText(nsIDOMEvent* aTextEvent);
- nsresult HandleStartComposition(nsIDOMEvent* aCompositionEvent);
- void HandleEndComposition(nsIDOMEvent* aCompositionEvent);
+ nsresult HandleChangeComposition(WidgetCompositionEvent* aCompositionEvent);
+ nsresult HandleStartComposition(WidgetCompositionEvent* aCompositionEvent);
+ void HandleEndComposition(WidgetCompositionEvent* aCompositionEvent);
virtual nsresult MouseDown(nsIDOMMouseEvent* aMouseEvent);
virtual nsresult MouseUp(nsIDOMMouseEvent* aMouseEvent) { return NS_OK; }
virtual nsresult MouseClick(nsIDOMMouseEvent* aMouseEvent);
- nsresult Focus(nsIDOMEvent* aEvent);
- nsresult Blur(nsIDOMEvent* aEvent);
+ nsresult Focus(WidgetEvent* aFocusEvent);
+ nsresult Blur(WidgetEvent* aBlurEvent);
nsresult DragEnter(nsIDOMDragEvent* aDragEvent);
nsresult DragOver(nsIDOMDragEvent* aDragEvent);
nsresult DragExit(nsIDOMDragEvent* aDragEvent);
@@ -85,6 +86,19 @@ protected:
bool ShouldHandleNativeKeyBindings(nsIDOMKeyEvent* aKeyEvent);
nsresult HandleMiddleClickPaste(nsIDOMMouseEvent* aMouseEvent);
+ /**
+ * DetachedFromEditor() returns true if editor was detached.
+ * Otherwise, false.
+ */
+ bool DetachedFromEditor() const;
+
+ /**
+ * DetachedFromEditorOrDefaultPrevented() returns true if editor was detached
+ * and/or the event was consumed. Otherwise, i.e., attached editor can
+ * handle the event, returns true.
+ */
+ bool DetachedFromEditorOrDefaultPrevented(WidgetEvent* aEvent) const;
+
EditorBase* mEditorBase; // weak
RefPtr<nsCaret> mCaret;
bool mCommitText;