includes/clientside/tinymce/plugins/inlinepopups/editor_plugin_src.js
changeset 778 57ce13805b6f
parent 543 dffcbfbc4e59
child 1193 e3b94bd055dc
--- a/includes/clientside/tinymce/plugins/inlinepopups/editor_plugin_src.js	Sun Dec 21 15:35:46 2008 -0500
+++ b/includes/clientside/tinymce/plugins/inlinepopups/editor_plugin_src.js	Sun Dec 21 16:28:00 2008 -0500
@@ -1,5 +1,5 @@
 /**
- * $Id: editor_plugin_src.js 809 2008-04-17 14:41:31Z spocke $
+ * $Id: editor_plugin_src.js 961 2008-11-14 10:31:07Z spocke $
  *
  * @author Moxiecode
  * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
@@ -35,6 +35,7 @@
 			t.parent(ed);
 			t.zIndex = 300000;
 			t.count = 0;
+			t.windows = {};
 		},
 
 		open : function(f, p) {
@@ -237,7 +238,6 @@
 			});
 
 			// Add window
-			t.windows = t.windows || {};
 			w = t.windows[id] = {
 				id : id,
 				mousedown_func : mdf,
@@ -254,17 +254,20 @@
 			});
 
 			// Setup blocker
-			if (t.count == 0 && t.editor.getParam('dialog_type') == 'modal') {
+			if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {
 				DOM.add(DOM.doc.body, 'div', {
 					id : 'mceModalBlocker',
 					'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
-					style : {left : vp.x, top : vp.y, zIndex : t.zIndex - 1}
+					style : {zIndex : t.zIndex - 1}
 				});
 
 				DOM.show('mceModalBlocker'); // Reduces flicker in IE
 			} else
 				DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
 
+			if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel))
+				DOM.setStyles('mceModalBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});
+
 			t.focus(id);
 			t._fixIELayout(id, 1);
 
@@ -278,16 +281,18 @@
 		},
 
 		focus : function(id) {
-			var t = this, w = t.windows[id];
+			var t = this, w;
 
-			w.zIndex = this.zIndex++;
-			w.element.setStyle('zIndex', w.zIndex);
-			w.element.update();
+			if (w = t.windows[id]) {
+				w.zIndex = this.zIndex++;
+				w.element.setStyle('zIndex', w.zIndex);
+				w.element.update();
 
-			id = id + '_wrapper';
-			DOM.removeClass(t.lastId, 'mceFocus');
-			DOM.addClass(id, 'mceFocus');
-			t.lastId = id;
+				id = id + '_wrapper';
+				DOM.removeClass(t.lastId, 'mceFocus');
+				DOM.addClass(id, 'mceFocus');
+				t.lastId = id;
+			}
 		},
 
 		_addAll : function(te, ne) {
@@ -349,8 +354,12 @@
 				DOM.add(d.body, 'div', {
 					id : 'mceEventBlocker',
 					'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),
-					style : {left : vp.x, top : vp.y, zIndex : t.zIndex + 1}
+					style : {zIndex : t.zIndex + 1}
 				});
+
+				if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))
+					DOM.setStyles('mceEventBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});
+
 				eb = new Element('mceEventBlocker');
 				eb.update();
 
@@ -470,17 +479,17 @@
 
 			id = t._findId(id || win);
 
+			// Probably not inline
+			if (!t.windows[id]) {
+				t.parent(win);
+				return;
+			}
+
 			t.count--;
 
 			if (t.count == 0)
 				DOM.remove('mceModalBlocker');
 
-			// Probably not inline
-			if (!id && win) {
-				t.parent(win);
-				return;
-			}
-
 			if (w = t.windows[id]) {
 				t.onClose.dispatch(t);
 				Event.remove(d, 'mousedown', w.mousedownFunc);