Subject: bug#18990: 25.0.50; Scroll bar display problems

From: Stephen Berman <[email-masked]>
Date: Sat, 08 Nov 2014 15:26:43 +0100

On Sat, 8 Nov 2014 09:57:59 +0100 "Jan D." <[email-masked]> wrote:

> Hi.
>
>> 8 nov 2014 kl. 08:54 skrev Eli Zaretskii <[email-masked]>:
>> 
>>> From: Stephen Berman <[email-masked]>
>>> Date: Sat, 08 Nov 2014 00:00:20 +0100
>>> 
>>> Starting Emacs like this:
>>> 
>>> emacs -Q --eval "(progn (modify-all-frames-parameters '((scroll-bar-width
>>> . 7))) (custom-set-variables '(scroll-bar-mode (quote left))))"
>>> 
>>> the scroll bar is correctly display on the left, but its width is the
>>> default, not the customized value, and it overlays the left fringe,
>>> which is hence hidden.
[...]
>> 
>> Sounds like a GTK thing to me.  Does this happen if you use a
>> different toolkit, like lucid or athena?

Trying to build with the Lucid toolkit errors out when trying to link
with libpng16, which I think is required here for the Gtk3 build to
succeed (at least I remember having this problem in the past, but I
haven't pursued it since I generally prefer the Gtk build anyway).

> Some Gtk+ themes force a fixed width scrollbar, because they use bitmaps.
> Emacs can set scroll bar width all it wants, it wont matter to the Gtk+ scroll bar.
> It is difficult to solve. 

The problem occurs with both Gtk+ themes I currently have on my system;
however, it is evidently not due to the scroll bar's width being fixed
(at least for Emacs), see below.

On Sat, 08 Nov 2014 09:54:27 +0100 martin rudalics <[email-masked]> wrote:

> There are two ways to change the width or height of a scroll bar with
> GTK: Either by choosing an appropriate theme or by setting the
> slider-width in a configuration file.  You can't change the size
> individually from within Emacs and IMO we should prevent users from
> trying to do so.  What happens currently is that Emacs internally uses
> the height you specified and GTK continues to draw the scroolbar in its
> default size over it.

This is not what I observe: I have no setting for the scroll bar in a
Gtk config file, but when I start emacs with -Q --eval
"(modify-all-frames-parameters '((scroll-bar-width . 7)))", then the
scroll bar is displayed thin on the right, unlike when I make it be on
the left, and the right fringe is not overlaid by the scroll bar like the
left fringe is; see the attached screen shot.  The thin scroll bar looks
crappy and clearly is not being properly modified as a toolkit widget,
but just as clearly Emacs is able to modify it.  I guess the easiest
solution would be to make modifying the Gtk scroll bar a noop.

>> These display problems do not happen when the scroll bar is either on
>> the right or has its default width.
>
> There are similar problems, for example, with side-by-side windows.

I hadn't noticed this before, but the attached screen shot confirms it.
Interestingly, the right fringe of the left window is not hidden.

>> They also don't happen with the
>> non-toolkit-scroll-bar build.  They do happen with 24.3, the earliest
>> version I currently have (I don't have a non-toolkit-scroll-bar build of
>> 24.4 at hand but I guess it also has the problems).
>
> Non-GTK scroll bars should not have any such problems.
>
>> (I haven't noticed
>> these problems before, since I've been using non-toolkit-scroll-bar
>> builds for a long time, and only since the 24.4 release have switched to
>> the toolkit scroll bar on the trunk to be able to test the horizontal
>> scroll bar.)
>
> The GTK horizontal scroll bar has similar problems.

Do you mean that the above invocation should also make the horizontal
scroll bar thinner? (Does it with the Lucid build?)  If so, then I can
confirm that it isn't thinner for me; but I haven't seen any display
glitches either with the horizontal scroll bar like I have with the
vertical scroll bar on the left.

Steve Berman