Comment 9 for bug 2049923

Revision history for this message
Egmont Koblinger (egmont-gmail) wrote (last edit ):

Hmmmm.... trying to make sense of it...

There's hardly any code from gnome-terminal itself in the stack trace, most of them is from GTK.

#10 is from update_color_scheme():

  if (gdk_rgba_hash (&priv->bg_color) != gdk_rgba_hash (&bg))
    {
      priv->bg_color = bg;
      g_object_notify (G_OBJECT (screen), "bg-color"); <---- this line
    }

#0 gtk_widget_queue_draw() is called by #1 g_closure_invoke(), so the former is called as a callback registered earlier. The only place where this method can be registered as a callback is in terminal_screen_container_constructed():

  g_signal_connect_swapped (priv->screen, "notify::bg-color",
                            G_CALLBACK (gtk_widget_queue_draw), priv->vscrollbar);

and it's indeed about the same "bg-color" signal, so I'm quite sure this is where we are.

Now, this is not part of upstream gnome-terminal. It's added by Ubuntu's "scrollbar-background-theming.patch", as per lp:1493964, which tries to theme the scrollbar to match the terminal screen's main background color.

I suspect that toggling the scrollbar's visibility might eliminate this bug for you. Also, if you're familiar with recompiling Ubuntu packages with tiny modifications, I'm fairly confident that dropping this patch should fix the problem. Installed packages, modules, settings, whatnot related to GTK scrollbars (e.g. choosing whether to use an overlay or traditional one, etc.) might easily be relevant to whether this bug occurs.

I'm not an Ubuntu developer, and I'm not affiliated with Ubuntu or Launchpad. I'm a GNOME Terminal developer. At this point, I suspect with 99%+ certainity that upstream GNOME Terminal is not affected by the bug, it's introduced by Ubuntu (or maybe Debian). Therefore I'm sorry but I'm afraid I won't be able to help any further, the investigation and fixing should be continued by Ubuntu devs.