Had a crack at it myself. Seems to work nicely. I am aware that it is pretty gross looking JS, but such is life.
Thought I would post my solution here just in case someone find sit useful, but also for some constructive criticism or issues that I may have overlooked to be addressed.
Thanks.
function
onWindowDrag(e) {
var
windowWrapper = e.sender.wrapper,
windowPosition = windowWrapper.offset(),
shouldOverridePosition =
false
,
newTop = windowPosition.top,
newLeft = windowPosition.left,
browserWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
browserHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
//if window is maximized, don't allow drag
if
(e.sender.isMaximized()) {
windowWrapper.css({ top: 0, left: 0 });
return
;
}
//test y-axis for window positioning.
if
(windowPosition.top < 0) {
shouldOverridePosition =
true
;
newTop = 0;
}
if
(windowPosition.top + windowWrapper.height() > browserHeight) {
shouldOverridePosition =
true
;
newTop = browserHeight - windowWrapper.height();
}
//test x-axis for window positioning.
if
(windowPosition.left < 0) {
shouldOverridePosition =
true
;
newLeft = 0;
}
if
(windowPosition.left + windowWrapper.width() > browserWidth) {
shouldOverridePosition =
true
;
newLeft = browserWidth - windowWrapper.width();
}
if
(shouldOverridePosition) {
windowWrapper.css({ top: newTop, left: newLeft });
}
}