diff --git a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
index 7af0862..35e7b45 100644
--- a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
+++ b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
@@ -286,6 +286,16 @@ rwt.qx.Class.define("rwt.widgets.base.Popup",
left = docWidth - restrictToPageRight - width;
}
+ if( this._opener instanceof rwt.widgets.MenuItem ) {
+ var parentMenu = this._opener.getParentMenu();
+ var parentLeft = parentMenu.getLeft();
+ if (parentLeft) {
+ if (left < parentLeft) {
+ left = parentLeft - width;
+ }
+ }
+ }
+
if (top + height > docHeight - restrictToPageBottom) {
top = docHeight - restrictToPageBottom - height;
}
diff --git a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
index 35e7b45..b1df5dd 100644
--- a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
+++ b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/base/Popup.js
@@ -288,9 +288,10 @@ rwt.qx.Class.define("rwt.widgets.base.Popup",
if( this._opener instanceof rwt.widgets.MenuItem ) {
var parentMenu = this._opener.getParentMenu();
- var parentLeft = parentMenu.getLeft();
- if (parentLeft) {
- if (left < parentLeft) {
+ var parentLeft = parentMenu.getLeftValue();
+ var parentWidth = parentMenu.getWidthValue();
+ if (parentLeft && parentWidth) {
+ if (left < (parentLeft + parentWidth - 5)) {
left = parentLeft - width;
}
}