Subject: Re: bug#8505: 24.0.50; frame grows horizontally if scroll-bar-mode is non-nil

From: Jan Djärv <[email-masked]>
Date: Fri, 03 Jun 2011 18:45:19 +0200

Hello.

Thanks for debugging this.  I couldn't see it as I use Gtk3 without Gnome 3.
I have a fix for this, but savannah has problems right now.  I will check it 
in when savannah sorts itself out.

	Jan D.

Daiki Ueno skrev 2011-06-03 11.38:
> (Cc'ed Jan)
>
> Daiki Ueno<[email-masked]>  writes:
>
>> If I build emacs with ./configure --with-x-toolkit=gtk3 and start it
>> with emacs -Q, the width of the Emacs window is growing with the lapse
>> of time.
>
> OK, I finally got it.  This can be reproduced only with specific gtk-3.0
> themes (including GNOME3 default), where some widget properties have
> larger values than Emacs expects.
>
> Currently Emacs expects the scrollbar width at most 16 pixels.
>
> xfns.c:104442:
>
>   void
>   x_set_scroll_bar_default_width (struct frame *f)
>   {
>     int wid = FRAME_COLUMN_WIDTH (f);
>
>   #ifdef USE_TOOLKIT_SCROLL_BARS
>     /* A minimum width of 14 doesn't look good for toolkit scroll bars.  */
>     int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM;
>
> However, gnome-themes-standard wants to render scrollbars in 22-pixel width.
>
> http://git.gnome.org/browse/gnome-themes-standard/tree/themes/Adwaita/gtk-3.0/gtk-widgets.css#n511
>
>   .scrollbar {
>       background-image: none;
>       border-style: solid;
>       -GtkRange-trough-border: 2;
>       -GtkRange-arrow-scaling: 0.444;
>       -GtkRange-slider-width: 18;
>       -GtkRange-stepper-size: 18;
>
> 22 pixels = slider-width(18) + trough-border(2) * 2
>
> I confirmed that my problem is fixed if I increase the default width to
> 22.
>
> Since it happens with GNOME3 default theme, I would appreciate if it
> will be fixed before the pretest, though I don't know how easy to let
> Emacs to take account of GTK theme properties.
>
> Regards,