Browse Source

Fix skipped visible elements due to UI layout optimization.

ssinai1 6 years ago
parent
commit
6dfb25159f
1 changed files with 2 additions and 1 deletions
  1. 2 1
      Source/Urho3D/UI/UI.cpp

+ 2 - 1
Source/Urho3D/UI/UI.cpp

@@ -1193,10 +1193,11 @@ void UI::GetElementAt(UIElement*& result, UIElement* current, const IntVector2&
                         int screenPos = (parentLayoutMode == LM_HORIZONTAL) ? element->GetScreenPosition().x_ :
                         int screenPos = (parentLayoutMode == LM_HORIZONTAL) ? element->GetScreenPosition().x_ :
                             element->GetScreenPosition().y_;
                             element->GetScreenPosition().y_;
                         int layoutMaxSize = current->GetLayoutElementMaxSize();
                         int layoutMaxSize = current->GetLayoutElementMaxSize();
+                        int spacing = current->GetLayoutSpacing();
 
 
                         if (screenPos < 0 && layoutMaxSize > 0)
                         if (screenPos < 0 && layoutMaxSize > 0)
                         {
                         {
-                            auto toSkip = (unsigned)(-screenPos / layoutMaxSize);
+                            auto toSkip = (unsigned)(-screenPos / (layoutMaxSize + spacing));
                             if (toSkip > 0)
                             if (toSkip > 0)
                                 i += (toSkip - 1);
                                 i += (toSkip - 1);
                         }
                         }