Explorar o código

Prevent UIMenu from going offscreen

Ivan Safrin %!s(int64=11) %!d(string=hai) anos
pai
achega
8784c7eb6f
Modificáronse 1 ficheiros con 10 adicións e 0 borrados
  1. 10 0
      Modules/Contents/UI/Source/PolyUIMenu.cpp

+ 10 - 0
Modules/Contents/UI/Source/PolyUIMenu.cpp

@@ -247,6 +247,16 @@ UIMenuItem *UIMenu::addOption(String label, String _id, void *data) {
 	newItem->setPosition(0,paddingY+nextItemHeight);
 	nextItemHeight += menuItemHeight;
 	dropDownBox->resizeBox(menuWidth, nextItemHeight + (paddingY * 2.0));
+    
+    Number difference = CoreServices::getInstance()->getCore()->getYRes() - (getPosition().y + dropDownBox->getHeight());
+    if(difference < 0) {
+        setPositionY(getPosition().y + difference);
+    }
+    difference = CoreServices::getInstance()->getCore()->getXRes() - (getPosition().x + dropDownBox->getWidth());
+    if(difference < 0) {
+        setPositionX(getPosition().x + difference);
+    }
+    
 	return newItem;
 }