summaryrefslogtreecommitdiff
path: root/skins/default/splitter.js
diff options
context:
space:
mode:
Diffstat (limited to 'skins/default/splitter.js')
-rw-r--r--skins/default/splitter.js21
1 files changed, 11 insertions, 10 deletions
diff --git a/skins/default/splitter.js b/skins/default/splitter.js
index ef4da037b..3ed0eb62a 100644
--- a/skins/default/splitter.js
+++ b/skins/default/splitter.js
@@ -74,7 +74,10 @@ function rcube_splitter(attrib)
this.p2.style.top = Math.ceil(this.pos + lh / 2) + 'px';
this.layer.move(this.layer.x, Math.round(this.pos - lh / 2 + 1));
if (bw.ie)
- this.p2.style.height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top))+'px';
+ {
+ var new_height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top));
+ this.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
+ }
}
else
{
@@ -117,7 +120,7 @@ function rcube_splitter(attrib)
// the position of each iframe when the event is received
var s = this;
var id = iframes[n].id;
- this.iframe_events[n] = function(e){ e._rc_pos_offset = rcube_get_object_pos(document.getElementById(id)); return s.onDrag(e); }
+ this.iframe_events[n] = function(e){ e._offset = rcube_get_object_pos(document.getElementById(id)); return s.onDrag(e); }
if (iframedoc.addEventListener)
iframedoc.addEventListener('mousemove', this.iframe_events[n], false);
@@ -136,15 +139,9 @@ function rcube_splitter(attrib)
*/
this.onDrag = function(e)
{
- var pos = rcube_event.get_mouse_pos(e);
-
if (!this.drag_active) return false;
- if (e._rc_pos_offset)
- {
- pos.x += e._rc_pos_offset.x;
- pos.y += e._rc_pos_offset.y;
- }
+ var pos = rcube_event.get_mouse_pos(e);
if (this.relative)
{
@@ -215,13 +212,17 @@ function rcube_splitter(attrib)
return bw.safari ? true : rcube_event.cancel(e);
};
+
/**
* Handler for window resize events
*/
this.onResize = function(e)
{
if (this.horizontal)
- this.p2.style.height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top))+'px';
+ {
+ var new_height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top));
+ this.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
+ }
else
this.p2.style.width = (parseInt(this.p2.parentNode.offsetWidth) - parseInt(this.p2.style.left))+'px';
};