Make popups disapear when clicking on an iframe; adapt IE hacks (#1488354)

pull/1/head
thomascube 13 years ago
parent 40d246fff2
commit 14a3f2813a

@ -61,6 +61,10 @@ ul.toolbarmenu li a {
width: 140px;
}
.dropbutton .dropbuttontip {
right: 0;
}
#threadselectmenu li a {
width: 160px;
}

@ -128,7 +128,7 @@ ul.toolbarmenu li a.active:hover,
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#82acb5', endColorstr='#6a939f', GradientType=0);
}
#mailboxlist li.mailbox.selected .unreadcount {
#mailboxlist li.mailbox.selected > a .unreadcount {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005d76', endColorstr='#004558', GradientType=0);
}

@ -173,22 +173,7 @@ function rcube_mail_ui()
// turn a group of fieldsets into tabs
$('.tabbed').each(function(idx, elem){ init_tabs(elem); })
$(document.body).bind('mouseup', function(e){
var config, obj, target = e.target;
for (var id in popups) {
obj = popups[id];
config = popupconfig[id];
if (obj.is(':visible')
&& target.id != id+'link'
&& !config.toggle
&& (!config.editable || !target_overlaps(target, obj.get(0)))
&& (!config.sticky || !rcube_mouse_is_over(e, obj.get(0)))
) {
var myid = id+'';
window.setTimeout(function(){ show_popupmenu(myid, false) }, 10);
}
}
})
$(document.body).bind('mouseup', body_mouseup)
.bind('keyup', function(e){
if (e.keyCode == 27) {
for (var id in popups) {
@ -198,6 +183,13 @@ function rcube_mail_ui()
}
});
$('iframe').load(function(e){
// this = iframe
var doc = this.contentDocument ? this.contentDocument : this.contentWindow ? this.contentWindow.document : null;
$(doc).mouseup(body_mouseup);
})
.contents().mouseup(body_mouseup);
$(window).resize(function(e) {
// check target due to bugs in jquery
// http://bugs.jqueryui.com/ticket/7514
@ -206,6 +198,28 @@ function rcube_mail_ui()
});
}
/**
* Handler for mouse-up events on the document body.
* This will close all open popup menus
*/
function body_mouseup(e)
{
var config, obj, target = e.target;
for (var id in popups) {
obj = popups[id];
config = popupconfig[id];
if (obj.is(':visible')
&& target.id != id+'link'
&& !config.toggle
&& (!config.editable || !target_overlaps(target, obj.get(0)))
&& (!config.sticky || !rcube_mouse_is_over(e, obj.get(0)))
) {
var myid = id+'';
window.setTimeout(function(){ show_popupmenu(myid, false) }, 10);
}
}
}
/**
* Update UI on window resize
*/

Loading…
Cancel
Save