From 3412e50b54e3daac8745234e21ab6e72be0ed165 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 04 Jun 2014 11:20:33 -0400
Subject: [PATCH] Fix attachment menu structure and aria-attributes

---
 program/js/tiny_mce/plugins/fullscreen/fullscreen.htm |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/program/js/tiny_mce/plugins/fullscreen/fullscreen.htm b/program/js/tiny_mce/plugins/fullscreen/fullscreen.htm
index ffe528e..baf028b 100644
--- a/program/js/tiny_mce/plugins/fullscreen/fullscreen.htm
+++ b/program/js/tiny_mce/plugins/fullscreen/fullscreen.htm
@@ -46,7 +46,7 @@
 		settings['strict_loading_mode'] = true;
 
 		settings.save_onsavecallback = function() {
-			window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});
+			moveContent();
 			window.opener.tinyMCE.get(oeID).execCommand('mceSave');
 			window.close();
 		};
@@ -56,11 +56,15 @@
 		}
 
 		function moveContent() {
-			window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());
+			// find the original editor, execute restore state in it's plugin instance
+			window.opener.tinyMCE.get(oeID).plugins.fullscreen.saveState(tinyMCE.activeEditor);
+
+			// prevent moveContent from being called twice - e.g. if the unloadHandler runs after moveContent()
+			tinymce.dom.Event.remove(window, "beforeunload", unloadHandler);
 		}
 
 		function closeFullscreen() {
-			moveContent();
+			// moveContent() will be called by the unload handler
 			window.close();
 		}
 
@@ -78,17 +82,20 @@
 		function render() {
 			var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;
 
-			e.value = window.opener.tinyMCE.get(oeID).getContent();
-
 			vp = dom.getViewPort();
 			settings.width = vp.w;
 			settings.height = vp.h - 15;
 
-			tinymce.dom.Event.add(window, 'resize', function() {
-				var vp = dom.getViewPort();
+			settings.oninit = function() {
+				var ed = tinyMCE.activeEditor;
+				window.opener.tinyMCE.get(oeID).plugins.fullscreen.loadState(ed);
 
-				tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);
-			});
+				tinymce.dom.Event.add(window, 'resize', function() {
+					var vp = dom.getViewPort();
+
+					tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);
+				});
+			}
 
 			tinyMCE.init(settings);
 		}

--
Gitblit v1.9.1