GNU bug report logs - #32975
Emacs 26.1; GTK Warnings

Previous Next

Package: emacs;

Reported by: Tjernlund <tjernlund <at> tjernlund.se>

Date: Sun, 7 Oct 2018 18:33:02 UTC

Severity: normal

Tags: fixed

Fixed in version 26.2

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Robert Pluim <rpluim <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: Tjernlund <tjernlund <at> tjernlund.se>, 32975 <at> debbugs.gnu.org
Subject: bug#32975: Emacs 26.1; GTK Warnings
Date: Thu, 11 Oct 2018 14:26:38 +0200
martin rudalics <rudalics <at> gmx.at> writes:

>> There is only one call to xg_set_background_color, from xfns.c, which looks
>> like this with my patch applied:
>>
>> #ifdef USE_TOOLKIT_SCROLL_BARS
>> # ifdef USE_GTK
>>        xg_set_background_color (f, bg);
>> # endif
>> #else
>>
>> So it will only ever happen when the scrollbars are GTK widgets.
>
> But this effectively throws out the baby - painting the background of
> the frame widget proper via
>
>       xg_set_widget_bg (f, FRAME_GTK_WIDGET (f), FRAME_BACKGROUND_PIXEL (f));
>
> with the bathwater - painting the background of non-existent scroll
> bar widgets via
>
>           xg_set_widget_bg (f, webox, FRAME_BACKGROUND_PIXEL (f));
>
> for GTK builds with native Emacs scroll bars.

Iʼm being particularly dense today: youʼre right. How about moving the
check for USE_TOOLKIT_SCROLL_BARS down into xg_set_background_color
like so (which I think was your original suggestion):

diff --git i/src/gtkutil.c w/src/gtkutil.c
index 6b72671da9..5879ab683e 100644
--- i/src/gtkutil.c
+++ w/src/gtkutil.c
@@ -1498,6 +1498,7 @@ xg_set_background_color (struct frame *f, unsigned long bg)
       block_input ();
       xg_set_widget_bg (f, FRAME_GTK_WIDGET (f), FRAME_BACKGROUND_PIXEL (f));
 
+#ifdef USE_TOOLKIT_SCROLL_BARS
       Lisp_Object bar;
       for (bar = FRAME_SCROLL_BARS (f);
            !NILP (bar);
@@ -1508,7 +1509,7 @@ xg_set_background_color (struct frame *f, unsigned long bg)
           GtkWidget *webox = gtk_widget_get_parent (scrollbar);
           xg_set_widget_bg (f, webox, FRAME_BACKGROUND_PIXEL (f));
         }
-
+#endif
       unblock_input ();
     }
 }






This bug report was last modified 6 years and 224 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.