From 836a9ad3847d42087c4daeec81e84b7b7936714a Mon Sep 17 00:00:00 2001
From: Michael Gratton <mike@vee.net>
Date: Mon, 28 Sep 2020 22:26:23 +1000
Subject: [PATCH 032/124] FormattedConversationData: Fix font settings being
 ignored under Flatpak

Get the interface font from Gtk.Settings instead of GLib.Settings since
the latter can't actually access desktop settings under Flatpak.

Partial fix for #989

See also GNOME/glib#2213
---
 .../formatted-conversation-data.vala             | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/client/conversation-list/formatted-conversation-data.vala b/src/client/conversation-list/formatted-conversation-data.vala
index f2b635f8..b21a931f 100644
--- a/src/client/conversation-list/formatted-conversation-data.vala
+++ b/src/client/conversation-list/formatted-conversation-data.vala
@@ -100,6 +100,8 @@ public class FormattedConversationData : Geary.BaseObject {
     public Geary.Email? preview { get; private set; default = null; }
 
     private Application.Configuration config;
+
+    private Gtk.Settings? gtk;
     private Pango.FontDescription font;
 
     private Geary.App.Conversation? conversation = null;
@@ -115,13 +117,13 @@ public class FormattedConversationData : Geary.BaseObject {
                                      Geary.Email preview,
                                      Gee.List<Geary.RFC822.MailboxAddress> account_owner_emails) {
         this.config = config;
+        this.gtk = Gtk.Settings.get_default();
         this.conversation = conversation;
         this.account_owner_emails = account_owner_emails;
         this.use_to = conversation.base_folder.used_as.is_outgoing();
 
-        this.font = Pango.FontDescription.from_string(
-            this.config.gnome_interface.get_string("font-name")
-        );
+        this.gtk.notify["gtk-font-name"].connect(this.update_font);
+        update_font();
 
         // Load preview-related data.
         update_date_string();
@@ -472,4 +474,12 @@ public class FormattedConversationData : Geary.BaseObject {
         return ink_rect;
     }
 
+    private void update_font() {
+        var name = "Cantarell 11";
+        if (this.gtk != null) {
+            name = this.gtk.gtk_font_name;
+        }
+        this.font = Pango.FontDescription.from_string(name);
+    }
+
 }
-- 
2.29.2

