https://bugs.freedesktop.org/show_bug.cgi?id=60565

--- Comment #12 from Michael Meeks <[email protected]> ---
I -imagine- that this comes down to the gtk+ toolkit noticing that the
fontconfig files have been changed, and refreshing it's font cache information,
and us using the old data.

I imagine the problem stems from:

gtksettings.c (settings_update_fontconfig)
...
  if (timestamp != last_update_timestamp)
    {
      PangoFontMap *fontmap = pango_cairo_font_map_get_default ();
      gboolean update_needed = FALSE;

      /* bug 547680 */
      if (PANGO_IS_FC_FONT_MAP (fontmap) && !FcConfigUptoDate (NULL))
        {
          pango_fc_font_map_cache_clear (PANGO_FC_FONT_MAP (fontmap));
          if (FcInitReinitialize ())
            update_needed = TRUE;
        }

At least we get a:

        gtk_style_context_reset_widgets (priv->screen);

When this happens - so (hopefully) we can track and trap that inside vcl
somehow; we get a:

void
gtk_style_context_reset_widgets (GdkScreen *screen)
{
  GList *list, *toplevels;

  _gtk_icon_set_invalidate_caches ();

  toplevels = gtk_window_list_toplevels ();
  g_list_foreach (toplevels, (GFunc) g_object_ref, NULL);

  for (list = toplevels; list; list = list->next)
    {
      if (gtk_widget_get_screen (list->data) == screen)
        gtk_widget_reset_style (list->data);

      g_object_unref (list->data);
    }

  g_list_free (toplevels);
}

Hopefully this eventually calls:

void
gtk_style_context_invalidate (GtkStyleContext *context)
...
  g_signal_emit (context, signals[CHANGED], 0);

and we can catch that ...

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to