diff options
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/ui/List.java | 7 | ||||
-rw-r--r-- | test/src/ch/asynk/gdx/boardgame/test/UiScreen.java | 1 |
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; |