[geary/wip/765516-gtk-widget-conversation-viewer: 118/174] Convert new convo widgets to use Gtk.Grid instead of Box.



commit 9a0c75d7853b6de8637e3cefa9768b1b790ccb66
Author: Michael James Gratton <mike vee net>
Date:   Sun Aug 14 13:22:40 2016 +1000

    Convert new convo widgets to use Gtk.Grid instead of Box.

 .../conversation-viewer/conversation-email.vala    |   37 ++--
 .../conversation-viewer/conversation-listbox.vala  |    2 +-
 .../conversation-viewer/conversation-message.vala  |   27 ++--
 .../conversation-viewer/conversation-viewer.vala   |   28 +--
 ui/conversation-email.ui                           |   69 ++++---
 ui/conversation-message.ui                         |  219 +++++++++-----------
 ui/conversation-viewer.ui                          |   10 +-
 ui/empty-placeholder.ui                            |    2 +
 8 files changed, 193 insertions(+), 201 deletions(-)
---
diff --git a/src/client/conversation-viewer/conversation-email.vala 
b/src/client/conversation-viewer/conversation-email.vala
index ad2ad95..3582b37 100644
--- a/src/client/conversation-viewer/conversation-email.vala
+++ b/src/client/conversation-viewer/conversation-email.vala
@@ -18,6 +18,9 @@
 [GtkTemplate (ui = "/org/gnome/Geary/conversation-email.ui")]
 public class ConversationEmail : Gtk.Box {
 
+    // This isn't a Gtk.Grid since when added to a Gtk.ListBoxRow the
+    // hover style isn't applied to it.
+
     /**
      * Iterator that returns all message views in an email view.
      */
@@ -176,7 +179,7 @@ public class ConversationEmail : Gtk.Box {
     private SimpleActionGroup message_actions = new SimpleActionGroup();
 
     [GtkChild]
-    private Gtk.Box action_box;
+    private Gtk.Grid actions;
 
     [GtkChild]
     private Gtk.Button attachments_button;
@@ -197,10 +200,10 @@ public class ConversationEmail : Gtk.Box {
     private Gtk.InfoBar not_saved_infobar;
 
     [GtkChild]
-    private Gtk.Box sub_messages_box;
+    private Gtk.Grid sub_messages;
 
     [GtkChild]
-    private Gtk.Box attachments_box;
+    private Gtk.Grid attachments;
 
     [GtkChild]
     private Gtk.IconView attachments_view;
@@ -321,10 +324,8 @@ public class ConversationEmail : Gtk.Box {
         );
         connect_message_view_signals(this.primary_message);
 
-        this.primary_message.summary_box.pack_start(
-            this.action_box, false, false, 0
-        );
-        
+        this.primary_message.summary.add(this.actions);
+
         Gtk.Builder builder = new Gtk.Builder.from_resource(
             "/org/gnome/Geary/conversation-email-menus.ui"
         );
@@ -338,9 +339,7 @@ public class ConversationEmail : Gtk.Box {
         );
         this.attachments_menu.attach_to_widget(this, null);
 
-        this.primary_message.infobar_box.pack_start(
-            this.draft_infobar, false, false, 0
-        );
+        this.primary_message.infobars.add(this.draft_infobar);
         if (is_draft) {
             this.draft_infobar.show();
             this.draft_infobar.response.connect((infobar, response_id) => {
@@ -348,31 +347,29 @@ public class ConversationEmail : Gtk.Box {
                 });
         }
 
-        this.primary_message.infobar_box.pack_start(
-            this.not_saved_infobar, false, false, 0
-        );
+        this.primary_message.infobars.add(this.not_saved_infobar);
 
         // if (email.from != null && email.from.contains_normalized(current_account_information.email)) {
         //  // XXX set a RO property?
         //  get_style_context().add_class("geary_sent");
         // }
 
-        pack_start(primary_message, true, true, 0);
+        pack_start(this.primary_message, true, true, 0);
         update_email_state();
 
         // Add sub_messages container and message viewers if any
         
         Gee.List<Geary.RFC822.Message> sub_messages = message.get_sub_messages();
         if (sub_messages.size > 0) {
-            this.primary_message.body_box.pack_start(
-                this.sub_messages_box, false, false, 0
+            this.primary_message.body.pack_start(
+                this.sub_messages, false, false, 0
             );
         }
         foreach (Geary.RFC822.Message sub_message in sub_messages) {
             ConversationMessage attached_message =
                 new ConversationMessage(sub_message, contact_store, false);
             connect_message_view_signals(attached_message);
-            this.sub_messages_box.pack_start(attached_message, false, false, 0);
+            this.sub_messages.add(attached_message);
             this._attached_messages.add(attached_message);
         }
     }
@@ -653,9 +650,9 @@ public class ConversationEmail : Gtk.Box {
         // Show attachment widgets. Would like to do this in the
         // ctor but we don't know at that point if any attachments
         // will be displayed inline.
-        attachments_button.show();
-        attachments_button.set_sensitive(!this.is_collapsed);
-        primary_message.body_box.pack_start(attachments_box, false, false, 0);
+        this.attachments_button.show();
+        this.attachments_button.set_sensitive(!this.is_collapsed);
+        this.primary_message.body.add(this.attachments);
 
         // Add each displayed attachment to the icon view
         foreach (AttachmentInfo attachment_info in displayed_attachments) {
diff --git a/src/client/conversation-viewer/conversation-listbox.vala 
b/src/client/conversation-viewer/conversation-listbox.vala
index a334cf2..5179283 100644
--- a/src/client/conversation-viewer/conversation-listbox.vala
+++ b/src/client/conversation-viewer/conversation-listbox.vala
@@ -514,7 +514,7 @@ public class ConversationListBox : Gtk.ListBox {
             });
 
         ConversationMessage conversation_message = view.primary_message;
-        conversation_message.body_box.button_release_event.connect_after((event) => {
+        conversation_message.body.button_release_event.connect_after((event) => {
                 // Consume all non-consumed clicks so the row is not
                 // inadvertently activated after clicking on the
                 // email body.
diff --git a/src/client/conversation-viewer/conversation-message.vala 
b/src/client/conversation-viewer/conversation-message.vala
index 6dfefd8..d832a69 100644
--- a/src/client/conversation-viewer/conversation-message.vala
+++ b/src/client/conversation-viewer/conversation-message.vala
@@ -15,7 +15,7 @@
  * embeds at least one instance of this class.
  */
 [GtkTemplate (ui = "/org/gnome/Geary/conversation-message.ui")]
-public class ConversationMessage : Gtk.Box {
+public class ConversationMessage : Gtk.Grid {
 
     // Widget used to display sender/recipient email addresses in
     // message header Gtk.FlowBox instances.
@@ -99,11 +99,11 @@ public class ConversationMessage : Gtk.Box {
 
     /** Box containing the preview and full header widgets.  */
     [GtkChild]
-    internal Gtk.Box summary_box;
+    internal Gtk.Grid summary;
 
     /** Box that InfoBar widgets should be added to. */
     [GtkChild]
-    internal Gtk.Box infobar_box;
+    internal Gtk.Grid infobars;
 
     /** HTML view that displays the message body. */
     internal ConversationWebView web_view { get; private set; }
@@ -129,16 +129,16 @@ public class ConversationMessage : Gtk.Box {
     [GtkChild]
     private Gtk.Label date;
     [GtkChild]
-    private Gtk.Box to_header;
+    private Gtk.Grid to_header;
     [GtkChild]
-    private Gtk.Box cc_header;
+    private Gtk.Grid cc_header;
     [GtkChild]
-    private Gtk.Box bcc_header;
+    private Gtk.Grid bcc_header;
 
     [GtkChild]
     private Gtk.Revealer body_revealer;
     [GtkChild]
-    public Gtk.Box body_box;
+    public Gtk.Box body; // WebKit.WebView crashes when added to a Grid
 
     [GtkChild]
     private Gtk.Popover link_popover;
@@ -306,8 +306,9 @@ public class ConversationMessage : Gtk.Box {
         this.web_view.selection_changed.connect(on_selection_changed);
         this.web_view.show();
 
-        this.body_box.set_has_tooltip(true); // Used to show link URLs
-        this.body_box.pack_start(this.web_view, true, true, 0);
+        this.body.set_has_tooltip(true); // Used to show link URLs
+        this.body.pack_start(this.web_view, true, true, 0);
+    }
     }
 
     /**
@@ -564,10 +565,10 @@ public class ConversationMessage : Gtk.Box {
         return menu;
     }
 
-    private void set_header_addresses(Gtk.Box header,
+    private void set_header_addresses(Gtk.Grid header,
                                       Geary.RFC822.MailboxAddresses? addresses) {
         if (addresses != null && addresses.size > 0) {
-            Gtk.FlowBox box = header.get_children().nth(1).data as Gtk.FlowBox;
+            Gtk.FlowBox box = header.get_children().nth(0).data as Gtk.FlowBox;
             if (box != null) {
                 set_flowbox_addresses(box, addresses);
             }
@@ -1239,8 +1240,8 @@ public class ConversationMessage : Gtk.Box {
 
         // Use tooltip on the containing box since the web_view
         // doesn't want to pay ball.
-        this.body_box.set_tooltip_text(this.hover_url);
-        this.body_box.trigger_tooltip_query();
+        this.body.set_tooltip_text(this.hover_url);
+        this.body.trigger_tooltip_query();
     }
 
     private void on_selection_changed() {
diff --git a/src/client/conversation-viewer/conversation-viewer.vala 
b/src/client/conversation-viewer/conversation-viewer.vala
index 1087c6d..fc3f61a 100644
--- a/src/client/conversation-viewer/conversation-viewer.vala
+++ b/src/client/conversation-viewer/conversation-viewer.vala
@@ -51,17 +51,17 @@ public class ConversationViewer : Gtk.Stack {
     [GtkChild]
     private Gtk.Spinner loading_page;
     [GtkChild]
-    private Gtk.Box no_conversations_page;
+    private Gtk.Grid no_conversations_page;
     [GtkChild]
     internal Gtk.ScrolledWindow conversation_page;
     [GtkChild]
-    private Gtk.Box multiple_conversations_page;
+    private Gtk.Grid multiple_conversations_page;
     [GtkChild]
-    private Gtk.Box empty_folder_page;
+    private Gtk.Grid empty_folder_page;
     [GtkChild]
-    private Gtk.Box empty_search_page;
+    private Gtk.Grid empty_search_page;
     [GtkChild]
-    private Gtk.Box composer_page;
+    private Gtk.Grid composer_page;
 
     private ConversationFindBar conversation_find_bar;
 
@@ -87,36 +87,28 @@ public class ConversationViewer : Gtk.Stack {
         no_conversations.subtitle = _(
             "Selecting a conversation from the list will display it here"
         );
-        this.no_conversations_page.pack_start(
-            no_conversations, true, true, 0
-        );
+        this.no_conversations_page.add(no_conversations);
 
         EmptyPlaceholder multi_conversations = new EmptyPlaceholder();
         multi_conversations.title = _("Multiple conversations selected");
         multi_conversations.subtitle = _(
             "Choosing an action will apply to all selected conversations"
         );
-        this.multiple_conversations_page.pack_start(
-            multi_conversations, true, true, 0
-        );
+        this.multiple_conversations_page.add(multi_conversations);
 
         EmptyPlaceholder empty_folder = new EmptyPlaceholder();
         empty_folder.title = _("No conversations found");
         empty_folder.subtitle = _(
             "This folder does not contain any conversations"
         );
-        this.empty_folder_page.pack_start(
-            empty_folder, true, true, 0
-        );
+        this.empty_folder_page.add(empty_folder);
 
         EmptyPlaceholder empty_search = new EmptyPlaceholder();
         empty_search.title = _("No conversations found");
         empty_search.subtitle = _(
             "Your search returned no results, try refining your search terms"
         );
-        this.empty_search_page.pack_start(
-            empty_search, true, true, 0
-        );
+        this.empty_search_page.add(empty_search);
 
         // Setup state machine for search/find states.
         Geary.State.Mapping[] mappings = {
@@ -165,7 +157,7 @@ public class ConversationViewer : Gtk.Stack {
                     conversation_list_view.select_conversations(prev_selection);
                 }
             });
-        composer_page.pack_start(box);
+        this.composer_page.add(box);
         set_visible_child(composer_page);
     }
 
diff --git a/ui/conversation-email.ui b/ui/conversation-email.ui
index a3a7199..4ce1e99 100644
--- a/ui/conversation-email.ui
+++ b/ui/conversation-email.ui
@@ -5,23 +5,20 @@
   <template class="ConversationEmail" parent="GtkBox">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
     <property name="orientation">vertical</property>
     <child>
       <placeholder/>
     </child>
-    <child>
-      <placeholder/>
-    </child>
     <style>
       <class name="geary_email"/>
     </style>
   </template>
-  <object class="GtkBox" id="action_box">
+  <object class="GtkGrid" id="actions">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
     <property name="halign">end</property>
     <property name="valign">start</property>
-    <property name="homogeneous">True</property>
     <child>
       <object class="GtkButton" id="attachments_button">
         <property name="sensitive">False</property>
@@ -40,9 +37,8 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">0</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
     <child>
@@ -64,9 +60,8 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">1</property>
+        <property name="left_attach">1</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
     <child>
@@ -87,9 +82,8 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">2</property>
+        <property name="left_attach">2</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
     <child>
@@ -110,9 +104,8 @@
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">3</property>
+        <property name="left_attach">3</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
   </object>
@@ -126,19 +119,20 @@
       <column type="GObject"/>
     </columns>
   </object>
-  <object class="GtkBox" id="attachments_box">
+  <object class="GtkGrid" id="attachments">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
     <property name="orientation">vertical</property>
     <child>
       <object class="GtkSeparator">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">0</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
     <child>
@@ -146,6 +140,7 @@
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="margin">6</property>
+        <property name="hexpand">True</property>
         <property name="selection_mode">multiple</property>
         <property name="item_orientation">horizontal</property>
         <property name="model">attachments_model</property>
@@ -172,9 +167,8 @@
         </style>
       </object>
       <packing>
-        <property name="expand">True</property>
-        <property name="fill">True</property>
-        <property name="position">1</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">1</property>
       </packing>
     </child>
   </object>
@@ -327,13 +321,38 @@
       <action-widget response="1">button1</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkBox" id="sub_messages_box">
+  <object class="GtkGrid" id="sub_messages">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
     <property name="orientation">vertical</property>
     <child>
       <placeholder/>
     </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
+    <child>
+      <placeholder/>
+    </child>
     <style>
       <class name="geary-submessages"/>
     </style>
diff --git a/ui/conversation-message.ui b/ui/conversation-message.ui
index aabfd70..4013447 100644
--- a/ui/conversation-message.ui
+++ b/ui/conversation-message.ui
@@ -2,15 +2,16 @@
 <!-- Generated with glade 3.20.0 -->
 <interface>
   <requires lib="gtk+" version="3.14"/>
-  <template class="ConversationMessage" parent="GtkBox">
+  <template class="ConversationMessage" parent="GtkGrid">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
     <property name="orientation">vertical</property>
     <child>
-      <object class="GtkBox" id="summary_box">
+      <object class="GtkGrid" id="summary">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="spacing">6</property>
+        <property name="hexpand">True</property>
         <child>
           <object class="GtkImage" id="avatar">
             <property name="width_request">18</property>
@@ -22,40 +23,44 @@
             <property name="icon_name">avatar-default-symbolic</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">0</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
         <child>
-          <object class="GtkBox">
+          <object class="GtkGrid">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
             <property name="orientation">vertical</property>
             <child>
               <object class="GtkRevealer" id="preview_revealer">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
                 <property name="transition_type">none</property>
                 <property name="reveal_child">True</property>
                 <child>
-                  <object class="GtkBox">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="spacing">6</property>
+                    <property name="hexpand">True</property>
                     <child>
-                      <object class="GtkBox" id="preview">
+                      <object class="GtkGrid" id="preview">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
                         <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkBox">
+                          <object class="GtkGrid">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
                             <child>
                               <object class="GtkLabel" id="preview_from">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
                                 <property name="label" translatable="yes">From &lt;email&gt;</property>
                                 <property name="ellipsize">end</property>
                                 <property name="xalign">0</property>
@@ -64,9 +69,8 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -80,16 +84,14 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                         <child>
@@ -97,6 +99,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="halign">start</property>
+                            <property name="hexpand">True</property>
                             <property name="label" translatable="yes">Preview body text.</property>
                             <property name="ellipsize">end</property>
                             <property name="xalign">0</property>
@@ -105,9 +108,8 @@
                             </style>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
                           </packing>
                         </child>
                         <style>
@@ -115,45 +117,46 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                   </object>
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
               </packing>
             </child>
             <child>
               <object class="GtkRevealer" id="header_revealer">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
                 <property name="transition_type">none</property>
                 <child>
-                  <object class="GtkBox">
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="spacing">6</property>
+                    <property name="hexpand">True</property>
                     <child>
-                      <object class="GtkBox" id="headers">
+                      <object class="GtkGrid" id="headers">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
                         <property name="orientation">vertical</property>
                         <child>
-                          <object class="GtkBox" id="from_header">
+                          <object class="GtkGrid" id="from_header">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="baseline_position">top</property>
+                            <property name="hexpand">True</property>
                             <child>
                               <object class="GtkFlowBox" id="from">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="valign">baseline</property>
+                                <property name="hexpand">True</property>
                                 <property name="column_spacing">2</property>
                                 <property name="min_children_per_line">1</property>
                                 <property name="max_children_per_line">4</property>
@@ -163,15 +166,15 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkLabel" id="date">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
+                                <property name="valign">baseline</property>
                                 <property name="label" translatable="yes">1/1/1970     </property>
                                 <property name="ellipsize">end</property>
                                 <style>
@@ -179,16 +182,14 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
                           </packing>
                         </child>
                         <child>
@@ -196,6 +197,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="halign">start</property>
+                            <property name="hexpand">True</property>
                             <property name="label" translatable="yes">Subject</property>
                             <property name="wrap">True</property>
                             <property name="wrap_mode">word-char</property>
@@ -206,15 +208,13 @@
                             </style>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkBox" id="to_header">
+                          <object class="GtkGrid" id="to_header">
                             <property name="can_focus">False</property>
-                            <property name="baseline_position">top</property>
                             <child>
                               <object class="GtkLabel" id="to_label">
                                 <property name="visible">True</property>
@@ -227,9 +227,8 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -237,7 +236,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="valign">start</property>
-                                <property name="hexpand">False</property>
+                                <property name="hexpand">True</property>
                                 <property name="column_spacing">2</property>
                                 <property name="min_children_per_line">2</property>
                                 <property name="max_children_per_line">4</property>
@@ -247,22 +246,19 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">2</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkBox" id="cc_header">
+                          <object class="GtkGrid" id="cc_header">
                             <property name="can_focus">False</property>
-                            <property name="baseline_position">top</property>
                             <child>
                               <object class="GtkLabel" id="cc_label">
                                 <property name="visible">True</property>
@@ -275,9 +271,8 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -285,7 +280,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="valign">start</property>
-                                <property name="hexpand">False</property>
+                                <property name="hexpand">True</property>
                                 <property name="column_spacing">2</property>
                                 <property name="min_children_per_line">2</property>
                                 <property name="max_children_per_line">4</property>
@@ -295,22 +290,19 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">3</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkBox" id="bcc_header">
+                          <object class="GtkGrid" id="bcc_header">
                             <property name="can_focus">False</property>
-                            <property name="baseline_position">top</property>
                             <child>
                               <object class="GtkLabel" id="bcc_label">
                                 <property name="visible">True</property>
@@ -323,9 +315,8 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">False</property>
-                                <property name="position">0</property>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                             <child>
@@ -333,7 +324,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="valign">start</property>
-                                <property name="hexpand">False</property>
+                                <property name="hexpand">True</property>
                                 <property name="column_spacing">2</property>
                                 <property name="min_children_per_line">2</property>
                                 <property name="max_children_per_line">4</property>
@@ -343,16 +334,14 @@
                                 </style>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
-                            <property name="expand">True</property>
-                            <property name="fill">True</property>
-                            <property name="position">4</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">4</property>
                           </packing>
                         </child>
                         <style>
@@ -360,25 +349,22 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
                       </packing>
                     </child>
                   </object>
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
         <style>
@@ -386,24 +372,26 @@
         </style>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">0</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
       </packing>
     </child>
     <child>
       <object class="GtkRevealer" id="body_revealer">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
         <child>
-          <object class="GtkBox" id="body_box">
+          <object class="GtkBox" id="body">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <object class="GtkBox" id="infobar_box">
+              <object class="GtkGrid" id="infobars">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkInfoBar" id="remote_images_infobar">
@@ -501,25 +489,23 @@
                     </action-widgets>
                   </object>
                   <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
                   </packing>
                 </child>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
               </packing>
             </child>
           </object>
         </child>
       </object>
       <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">1</property>
+        <property name="left_attach">0</property>
+        <property name="top_attach">1</property>
       </packing>
     </child>
     <style>
@@ -528,10 +514,10 @@
   </template>
   <object class="GtkPopover" id="link_popover">
     <property name="can_focus">False</property>
-    <property name="relative_to">body_box</property>
+    <property name="relative_to">body</property>
     <property name="position">bottom</property>
     <child>
-      <object class="GtkBox">
+      <object class="GtkGrid">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="margin_left">6</property>
@@ -539,7 +525,6 @@
         <property name="margin_top">6</property>
         <property name="margin_bottom">6</property>
         <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
         <child>
           <object class="GtkLabel">
             <property name="visible">True</property>
@@ -547,9 +532,8 @@
             <property name="label" translatable="yes">This link appears to go to:</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
           </packing>
         </child>
         <child>
@@ -560,9 +544,8 @@
             <property name="use_markup">True</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
           </packing>
         </child>
         <child>
@@ -572,9 +555,8 @@
             <property name="label" translatable="yes">But actually goes to:</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">2</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">2</property>
           </packing>
         </child>
         <child>
@@ -585,9 +567,8 @@
             <property name="use_markup">True</property>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">3</property>
+            <property name="left_attach">0</property>
+            <property name="top_attach">3</property>
           </packing>
         </child>
       </object>
diff --git a/ui/conversation-viewer.ui b/ui/conversation-viewer.ui
index 4b1aa92..3357920 100644
--- a/ui/conversation-viewer.ui
+++ b/ui/conversation-viewer.ui
@@ -18,7 +18,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="no_conversations_page">
+      <object class="GtkGrid" id="no_conversations_page">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
@@ -47,7 +47,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="multiple_conversations_page">
+      <object class="GtkGrid" id="multiple_conversations_page">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
@@ -61,7 +61,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="empty_folder_page">
+      <object class="GtkGrid" id="empty_folder_page">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
@@ -75,7 +75,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="empty_search_page">
+      <object class="GtkGrid" id="empty_search_page">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
@@ -89,7 +89,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="composer_page">
+      <object class="GtkGrid" id="composer_page">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
diff --git a/ui/empty-placeholder.ui b/ui/empty-placeholder.ui
index 4602f18..f5355f3 100644
--- a/ui/empty-placeholder.ui
+++ b/ui/empty-placeholder.ui
@@ -7,6 +7,8 @@
     <property name="can_focus">False</property>
     <property name="halign">center</property>
     <property name="valign">center</property>
+    <property name="hexpand">True</property>
+    <property name="vexpand">True</property>
     <child>
       <object class="GtkImage" id="placeholder_image">
         <property name="visible">True</property>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]