Fixes RichTextArea in TabPanels.
Issue: 1227
Patch by: jgw
Review by: knorton, scottb
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1338 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
index a90d7f0..1ad0a40 100644
--- a/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
+++ b/user/src/com/google/gwt/user/client/ui/impl/RichTextAreaImplMozilla.java
@@ -31,15 +31,19 @@
// designMode, so let's avoid doing it more than once.
iframe.onload = null;
- // Yet another timeout -- old versions of Gecko don't like enabling
- // design mode immediately on load.
- $wnd.setTimeout(function() {
- // Turn on design mode.
- iframe.contentWindow.document.designMode = 'On';
+ // Send notification that the iframe has finished loading.
+ _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
- // Send notification that the iframe has reached design mode.
- _this.@com.google.gwt.user.client.ui.impl.RichTextAreaImplStandard::onElementInitialized()();
- }, 1);
+ // Don't set designMode until the RTA actually gets focused. This is
+ // necessary because editing won't work on Mozilla if the iframe is
+ // *hidden, but attached*. Waiting for focus gets around this issue.
+ //
+ // Note: This onfocus will not conflict with the addEventListener('focus',
+ // ...) // in RichTextAreaImplStandard.
+ iframe.contentWindow.onfocus = function() {
+ iframe.contentWindow.onfocus = null;
+ iframe.contentWindow.document.designMode = 'On';
+ };
};
}-*/;