diff --git a/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart b/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
index 5e13e354d..c39bd8bdc 100644
--- a/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
+++ b/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
@@ -147,6 +147,9 @@ class _HtmlContentViewerOnWebState extends State {
window.parent.addEventListener('message', handleMessage, false);
window.addEventListener('click', handleOnClickLink, true);
window.addEventListener('load', handleOnLoad);
+ window.addEventListener('beforeunload', (event) => {
+ window.parent.removeEventListener('message', handleMessage, false);
+ });
function handleMessage(e) {
if (e && e.data && e.data.includes("toIframe:")) {
diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart
index 423ec9e25..e5e54397f 100644
--- a/lib/features/composer/presentation/composer_controller.dart
+++ b/lib/features/composer/presentation/composer_controller.dart
@@ -218,7 +218,11 @@ class ComposerController extends BaseController {
void onClose() {
_initTextEditor = null;
_textEditorWeb = null;
- viewState.value = Right(UIClosedState());
+ dispatchState(Right(UIClosedState()));
+ composerArguments.value = null;
+ emailContentsViewState.value = Right(UIClosedState());
+ identitySelected.value = null;
+ listFromIdentities.clear();
if (PlatformInfo.isMobile) {
FkUserAgent.release();
}
diff --git a/lib/features/composer/presentation/controller/rich_text_web_controller.dart b/lib/features/composer/presentation/controller/rich_text_web_controller.dart
index 5c1422e89..782aca1e4 100644
--- a/lib/features/composer/presentation/controller/rich_text_web_controller.dart
+++ b/lib/features/composer/presentation/controller/rich_text_web_controller.dart
@@ -310,6 +310,7 @@ class RichTextWebController extends BaseRichTextController {
void onClose() {
menuParagraphController.dispose();
menuOrderListController.dispose();
+ editorController.clear();
super.onClose();
}
}
\ No newline at end of file
diff --git a/lib/features/composer/presentation/widgets/web/web_editor_widget.dart b/lib/features/composer/presentation/widgets/web/web_editor_widget.dart
index 44ade9bab..c3078af3c 100644
--- a/lib/features/composer/presentation/widgets/web/web_editor_widget.dart
+++ b/lib/features/composer/presentation/widgets/web/web_editor_widget.dart
@@ -65,15 +65,9 @@ class _WebEditorState extends State {
double? dropZoneHeight;
final ValueNotifier _htmlEditorHeight = ValueNotifier(_defaultHtmlEditorHeight);
bool _dropListenerRegistered = false;
+ Function(Event)? _dropListener;
- void _dropListener(Event event) {
- if (event is MessageEvent) {
- if (jsonDecode(event.data)['name'] == HtmlUtils.registerDropListener.name) {
- _editorController.evaluateJavascriptWeb(
- HtmlUtils.lineHeight100Percent.name);
- }
- }
- }
+
@override
void initState() {
@@ -89,6 +83,13 @@ class _WebEditorState extends State {
}
log('_WebEditorState::initState:dropZoneWidth: $dropZoneWidth | dropZoneHeight: $dropZoneHeight');
+ _dropListener = (event) {
+ if (event is MessageEvent) {
+ if (jsonDecode(event.data)['name'] == HtmlUtils.registerDropListener.name) {
+ _editorController.evaluateJavascriptWeb(HtmlUtils.lineHeight100Percent.name);
+ }
+ }
+ };
window.addEventListener("message", _dropListener);
}
@@ -113,6 +114,7 @@ class _WebEditorState extends State {
_editorController.evaluateJavascriptWeb(
HtmlUtils.unregisterDropListener.name);
window.removeEventListener("message", _dropListener);
+ _dropListener = null;
super.dispose();
}
diff --git a/pubspec.lock b/pubspec.lock
index b64c157a5..33b5f925f 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -1025,8 +1025,8 @@ packages:
dependency: "direct main"
description:
path: "."
- ref: email_supported
- resolved-ref: "96c199b233c5afde583295890ffbd880ea4c7d8c"
+ ref: memory_fixed_in_cnb
+ resolved-ref: "0292fa1b9c8bb018b910c1b8248be231b88a97b6"
url: "https://github.com/linagora/html-editor-enhanced.git"
source: git
version: "2.5.1"
diff --git a/pubspec.yaml b/pubspec.yaml
index 1f970d6df..7fd9b9cde 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -60,7 +60,7 @@ dependencies:
html_editor_enhanced:
git:
url: https://github.com/linagora/html-editor-enhanced.git
- ref: email_supported
+ ref: memory_fixed_in_cnb
jmap_dart_client:
git: