Aha!  Pondering the whole clipping region confusion led me to realize I had
neglected an override in ScalePane:

@Override
public void repaint(int x, int y, int width, int height, boolean immediate)
{
    ScalePaneSkin skin = (ScalePaneSkin) this.getSkin();
    // Transform bounds to parent space
    Bounds b = skin.translateChildBoundsToParent(x, y, width, height);
    super.repaint(b.x, b.y, b.width, b.height, immediate);
}

ScalePane is now *much* closer to working for the things I care about.
 Recapping the things I listed earlier:

Checkbox and similar components that display a changed state -- works now.

Expander -- works now

TextArea -- closer to working.  The insertion point indicator blinks,
selections are visible.  Selection can only be made successfully via the
keyboard (shift-arrows) -- attempting to select with the mouse highlights
the entire text while mouse is down, leaves nothing selected on mouse up.

Tooltips, ListButton -- still pop the tip/menu up in the wrong location.

Slider -- still fails in multiple ways, including a NullPointerException in
ThumbSkin.mouseMove, but at least the thumb highlights on mouse over.

Reply via email to