Subject: Re: bug#8505: 24.0.50; frame grows horizontally if scroll-bar-mode is non-nil
From: Jan Djärv <[email-masked]>
To: Daiki Ueno <[email-masked]>
Cc: [email-masked]
Date: Sun, 05 Jun 2011 21:08:29 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello.

I've checked in a fix.  But it occured to me that the wrong thing will happen 
if the theme is changed while Emacs runs, and the theme changed to has the 
wider scroll bar.  Can you change theme in Gnome 3?

	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,