> Let me rephrase this. GtkScrolledWindow's implementation of
> GtkWidgetClass::get_preferred_* and ::size_allocate are monstrously complex,
> and I don't see any evidence that they handle GTK_POLICY_EXTERNAL correctly
> (should be same as NEVER, I think?)
No. The point of EXTERNAL is very much that it is different from NEVER. Why else would we add another enum value ? NEVER forces the scrolledwindow to make the entire child visible. EXTERNAL allows the child to be scrolled.
I agree that GtkScrolledWindows allocation code is complicated. It could be much simpler if we gave up on 'traditional' scrollbars and always used overlays.
(In reply to Christian Persch from comment #10)
> Let me rephrase this. GtkScrolledWindow's implementation of :get_preferred_ * and ::size_allocate are monstrously complex,
> GtkWidgetClass:
> and I don't see any evidence that they handle GTK_POLICY_EXTERNAL correctly
> (should be same as NEVER, I think?)
No. The point of EXTERNAL is very much that it is different from NEVER. Why else would we add another enum value ? NEVER forces the scrolledwindow to make the entire child visible. EXTERNAL allows the child to be scrolled.
I agree that GtkScrolledWindows allocation code is complicated. It could be much simpler if we gave up on 'traditional' scrollbars and always used overlays.