From: julmis Date: Sun, 7 Mar 2004 14:39:43 +0000 (+0000) Subject: fixes for gecko based browsers dialogs behavior (jumpyness) X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=f662e5613027f5fb7c5a55224ca41af67803614e;p=moodle.git fixes for gecko based browsers dialogs behavior (jumpyness) --- diff --git a/lib/editor/dialog.js b/lib/editor/dialog.js index 9393c8c4e7..37238527a9 100644 --- a/lib/editor/dialog.js +++ b/lib/editor/dialog.js @@ -2,30 +2,30 @@ // it's just namespace for protecting global symbols. function Dialog(url, action, init) { - if (typeof init == "undefined") { - init = window; // pass this window object by default - } - if (document.all) { // here we hope that Mozilla will never support document.all - var value = - showModalDialog(url, init, - //window.open(url, '_blank', - "resizable: no; help: no; status: no; scroll: no"); - if (action) { - action(value); - } - } else { - return Dialog._geckoOpenModal(url, action, init); - } + if (typeof init == "undefined") { + init = window; // pass this window object by default + } + if (document.all) { // here we hope that Mozilla will never support document.all + var value = + showModalDialog(url, init, + //window.open(url, '_blank', + "resizable: no; help: no; status: no; scroll: no"); + if (action) { + action(value); + } + } else { + return Dialog._geckoOpenModal(url, action, init); + } }; Dialog._parentEvent = function(ev) { - if (Dialog._modal && !Dialog._modal.closed) { - setTimeout(function(){Dialog._modal.focus();}, 1); - // we get here in Mozilla only, anyway, so we can safely use - // the DOM version. - ev.preventDefault(); - ev.stopPropagation(); - } + if (Dialog._modal && !Dialog._modal.closed) { + setTimeout("Dialog._modal.focus()", 1); + // we get here in Mozilla only, anyway, so we can safely use + // the DOM version. + ev.preventDefault(); + ev.stopPropagation(); + } }; // should be a function, the return handler of the currently opened dialog. @@ -38,35 +38,59 @@ Dialog._modal = null; Dialog._arguments = null; Dialog._geckoOpenModal = function(url, action, init) { - var dlg = window.open(url, "ha_dialog", - "toolbar=no,menubar=no,personalbar=no,width=10,height=10," + - "scrollbars=no,resizable=no"); - Dialog._modal = dlg; - Dialog._arguments = init; + + if(url.lastIndexOf("insert_image.php") != -1) { + var x = 730; + var y = 540; + } else if (url.lastIndexOf("link.php") != -1) { + var x = 700; + var y = 460; + } else if (url.lastIndexOf("dlg_ins_smile.php") != -1) { + var x = 330; + var y = 360; + } else if (url.lastIndexOf("dlg_ins_char.php") != -1) { + var x = 450; + var y = 270; + } else if (url.lastIndexOf("select_color.html") != -1) { + var x = 238; + var y = 188; + } else if (url.lastIndexOf("insert_table.php") != -1) { + var x = 410; + var y = 240; + } else { + var x = 10; + var y = 10; + } + + var lx = (screen.width - x) / 2; + var tx = (screen.height - y) / 2; + var dlg = window.open(url, "ha_dialog", "toolbar=no,menubar=no,personalbar=no, width="+ x +",height="+ y +",scrollbars=no,resizable=no, left="+ lx +", top="+ tx +""); + Dialog._modal = dlg; + Dialog._arguments = init; - // capture some window's events - function capwin(w) { - w.addEventListener("click", Dialog._parentEvent, true); - w.addEventListener("mousedown", Dialog._parentEvent, true); - w.addEventListener("focus", Dialog._parentEvent, true); - }; - // release the captured events - function relwin(w) { - w.removeEventListener("focus", Dialog._parentEvent, true); - w.removeEventListener("mousedown", Dialog._parentEvent, true); - w.removeEventListener("click", Dialog._parentEvent, true); - }; - capwin(window); - // capture other frames - for (var i = 0; i < window.frames.length; capwin(window.frames[i++])); - // make up a function to be called when the Dialog ends. - Dialog._return = function (val) { - if (val && action) { - action(val); - } - relwin(window); - // capture other frames - for (var i = 0; i < window.frames.length; relwin(window.frames[i++])); - Dialog._modal = null; - }; + // capture some window's events + function capwin(w) { + w.addEventListener("click", Dialog._parentEvent, true); + w.addEventListener("mousedown", Dialog._parentEvent, true); + w.addEventListener("focus", Dialog._parentEvent, true); + }; + // release the captured events + function relwin(w) { + w.removeEventListener("focus", Dialog._parentEvent, true); + w.removeEventListener("mousedown", Dialog._parentEvent, true); + w.removeEventListener("click", Dialog._parentEvent, true); + }; + capwin(window); + // capture other frames + for (var i = 0; i < window.frames.length; capwin(window.frames[i++])); + // make up a function to be called when the Dialog ends. + Dialog._return = function (val) { + if (val && action) { + action(val); + } + relwin(window); + // capture other frames + for (var i = 0; i < window.frames.length; relwin(window.frames[i++])); + Dialog._modal = null; + }; };