scroller: Adjust rare case when content fits but bars are visible
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 26 Oct 2016 11:11:10 +0000 (20:11 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 27 Oct 2016 01:02:56 +0000 (10:02 +0900)
commitfb797611ed7e0c7e593682ee9636f5ec49d9fdb8
treeca1a834dcb1a5a92bdd0f9c0e2bdffa61965812a
parentbd9c752d3f65834559e3249bfb95aea332e8b2b5
scroller: Adjust rare case when content fits but bars are visible

This was simply annoying me. A scroller packed inside a box 150x150
should have enough space to hold an object of size 140x140. That's
a whole lot of 10 pixels margin!

This patch adds a special case code when the content "seems" to fit
inside the box but still one or both bars are visible. One problem
is that we can't know from the theme how much margin is used by a
scroller even when its bars are hidden. So we have to try to remove
them and then recalc to test.

This definitely adds quite a few more calculations if the state of
the scroll bars changes, but the result is way more pleasant :) This
should be limited to corner cases anyway (when the content size is
within 0 to ~20 pixels of the scroller size, depending on the theme
of course).

The test case is adjusted to show that same size content triggers
a show on the bars (because of theme margins). See CtxPopup test.
src/bin/elementary/test_ctxpopup.c
src/lib/elementary/elm_interface_scrollable.c