// also works when using centering of the component, // e.g. through jscroll_center_borderless svoid onEnclosingScrollPaneResize(JComponent c, Runnable r) { if (r == null) ret; new Var<> listener; bindToComponent(c, -> { var viewport = getParent(getParent(c)); if (viewport instanceof JViewPort) { listener.set(new ComponentAdapter { public void componentResized(ComponentEvent e) { pcallF(r); } }); c.addComponentListener(listener!); } }, -> { if (listener.has()) { var viewport = getParent(getParent(c)); viewport?.removeComponentListener(listener!); } }); }