summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/gdx/boardgame/ui/List.java7
-rw-r--r--test/src/ch/asynk/gdx/boardgame/test/UiScreen.java1
2 files changed, 8 insertions, 0 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/ui/List.java b/core/src/ch/asynk/gdx/boardgame/ui/List.java
index 19f08f2..e9f874a 100644
--- a/core/src/ch/asynk/gdx/boardgame/ui/List.java
+++ b/core/src/ch/asynk/gdx/boardgame/ui/List.java
@@ -56,6 +56,11 @@ public class List extends Element
{
unselect();
this.items = items;
+ taint();
+ }
+
+ @Override public void computeGeometry()
+ {
float w = 0f;
for (Item e: items) {
layout.setText(font, e.s());
@@ -65,12 +70,14 @@ public class List extends Element
rect.width = w + (2 * padding);
rect.height = (itemHeight * items.size()) + (2 * padding) - spacing;
+ super.computeGeometry();
}
@Override public void draw(Batch batch)
{
if (!visible) return;
+ if (tainted) computeGeometry();
float x = getInnerX();
float y = getInnerTop();
for (Item e : items) {
diff --git a/test/src/ch/asynk/gdx/boardgame/test/UiScreen.java b/test/src/ch/asynk/gdx/boardgame/test/UiScreen.java
index a0167dc..ec06a3f 100644
--- a/test/src/ch/asynk/gdx/boardgame/test/UiScreen.java
+++ b/test/src/ch/asynk/gdx/boardgame/test/UiScreen.java
@@ -188,6 +188,7 @@ class MyList extends Patch
// update dimensions
title.computeGeometry();
+ list.computeGeometry();
rect.width = title.getWidth() + pp;
rect.height = title.getHeight() + pp + list.getHeight() + 15;
if ((list.getWidth() + pp) > rect.width) rect.width = list.getWidth() + pp;