Author: a.izobov
Date: 2007-03-16 11:17:44 -0400 (Fri, 16 Mar 2007)
New Revision: 85
Modified:
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js
Log:
RFA-247 fixed
Modified:
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js
===================================================================
---
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-03-16
15:08:32 UTC (rev 84)
+++
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanel.js 2007-03-16
15:17:44 UTC (rev 85)
@@ -426,19 +426,24 @@
var vetoes = {};
var cssHash = {};
+ var winSize = Richfaces.getWindowSize();
+
var vetoeChange = false;
var newSize = Richfaces.getComputedStyleSize(this.cdiv, "width");
var oldSize = newSize;
+ var maxX = winSize.width - oldSize;
newSize += diff.deltaWidth || 0;
if (newSize >= this.minWidth) {
if (diff.deltaWidth) {
cssHash.width = newSize + 'px';
+ maxX = winSize.width - newSize;
}
} else {
if (diff.deltaWidth) {
cssHash.width = this.minWidth + 'px';
+ maxX = this.minWidth;
vetoes.vx = oldSize - this.minWidth;
}
@@ -458,18 +463,24 @@
if (this.cdiv.mpUseExpr) {
newPos = this.cdiv.mpLeft || 0;
newPos += diff.deltaX;
+ if (newPos<0) newPos = 0;
+ if (newPos>maxX) newPos = maxX;
this.cdiv.mpLeft = newPos;
//this.iframe.mpLeft = newPos;
} else {
newPos = Richfaces.getComputedStyleSize(this.cdiv, "left");
newPos += diff.deltaX;
+ if (newPos<0) newPos = 0;
+ if (newPos>maxX) newPos = maxX;
+
cssHash.left = newPos + 'px';
}
}
var newSize = Richfaces.getComputedStyleSize(this.cdiv, "height");
var oldSize = newSize;
+ var maxY = winSize.height - oldSize;
newSize += diff.deltaHeight || 0;
if (newSize >= this.minHeight) {
@@ -499,12 +510,17 @@
if (this.cdiv.mpUseExpr) {
newPos = this.cdiv.mpTop || 0;
newPos += diff.deltaY;
+ if (newPos<0) newPos = 0;
+ if (newPos>maxY) newPos = maxY;
this.cdiv.mpTop = newPos;
//this.iframe.mpTop = newPos;
} else {
newPos = Richfaces.getComputedStyleSize(this.cdiv, "top");
newPos += diff.deltaY;
+ if (newPos<0) newPos = 0;
+ if (newPos>maxY) newPos = maxY;
+
cssHash.top = newPos + 'px';
}
}
Modified:
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js
===================================================================
---
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js 2007-03-16
15:08:32 UTC (rev 84)
+++
trunk/richfaces/modal-panel/src/main/resources/org/richfaces/renderkit/html/scripts/modalPanelBorders.js 2007-03-16
15:17:44 UTC (rev 85)
@@ -28,6 +28,9 @@
this.dragX = event.clientX;
this.dragY = event.clientY;
+ this.startX = event.clientX-Richfaces.getComputedStyleSize(this.modalPanel.cdiv,
"left");
+ this.startY = event.clientY-Richfaces.getComputedStyleSize(this.modalPanel.cdiv,
"top");
+
Event.observe(document, 'mousemove', this.boundDoDrag);
Event.observe(document, 'mouseup', this.boundEndDrag);
@@ -48,6 +51,27 @@
var dx = evtX - this.dragX;
var dy = evtY - this.dragY;
+ var delX = evtX-Richfaces.getComputedStyleSize(this.modalPanel.cdiv,
"left");
+ if (dx>0) {
+ if (delX<this.startX) {
+ dx = Math.max(delX+dx-this.startX,0);
+ }
+ } else {
+ if (delX>this.startX) {
+ dx = Math.min(delX+dx-this.startX,0);
+ }
+ }
+ var delY = evtY-Richfaces.getComputedStyleSize(this.modalPanel.cdiv, "top");
+ if (dy>0) {
+ if (delY<this.startY) {
+ dy = Math.max(delY+dy-this.startY,0);
+ }
+ } else {
+ if (delY>this.startY) {
+ dy = Math.min(delY+dy-this.startY,0);
+ }
+ }
+
if (dx != 0 || dy != 0) {
var diff = this.sizer.doDiff(dx, dy);
var vetoes = this.modalPanel.doResizeOrMove(diff);
Show replies by date