]> git.0d.be Git - empathy.git/commitdiff
roster-group: inherit from GtkListBoxRow
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 29 Aug 2013 09:49:48 +0000 (11:49 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 4 Sep 2013 14:31:14 +0000 (16:31 +0200)
Need to be pack in a GtkListBox.

https://bugzilla.gnome.org/show_bug.cgi?id=706988

libempathy-gtk/empathy-roster-group.c
libempathy-gtk/empathy-roster-group.h
libempathy-gtk/empathy-roster-view.c

index 9ca53a8e955ba7986c71f10e77079be04122a5a7..753655ab56329e60d5f87eb8eefa91ec487e7653 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <telepathy-glib/telepathy-glib.h>
 
-G_DEFINE_TYPE (EmpathyRosterGroup, empathy_roster_group, GTK_TYPE_EXPANDER)
+G_DEFINE_TYPE (EmpathyRosterGroup, empathy_roster_group, GTK_TYPE_LIST_BOX_ROW)
 
 enum
 {
@@ -116,7 +116,7 @@ empathy_roster_group_constructed (GObject *object)
 
   gtk_widget_show_all (box);
 
-  gtk_expander_set_label_widget (GTK_EXPANDER (self), box);
+  gtk_expander_set_label_widget (self->expander, box);
 }
 
 static void
@@ -181,6 +181,13 @@ empathy_roster_group_init (EmpathyRosterGroup *self)
       EMPATHY_TYPE_ROSTER_GROUP, EmpathyRosterGroupPriv);
 
   self->priv->widgets = g_hash_table_new (NULL, NULL);
+
+  self->expander = GTK_EXPANDER (gtk_expander_new (NULL));
+  gtk_expander_set_use_markup (self->expander, TRUE);
+  gtk_expander_set_expanded (self->expander, TRUE);
+  gtk_widget_show (GTK_WIDGET (self->expander));
+
+  gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->expander));
 }
 
 GtkWidget *
@@ -190,8 +197,6 @@ empathy_roster_group_new (const gchar *name,
   return g_object_new (EMPATHY_TYPE_ROSTER_GROUP,
       "name", name,
       "icon", icon,
-      "use-markup", TRUE,
-      "expanded", TRUE,
       NULL);
 }
 
index 405455bf5837f31ac32c176ab53a7dd7aff8d1bb..d5ad70e57fdb6c24119d64e2bcc3260f0d87f608 100644 (file)
@@ -12,14 +12,17 @@ typedef struct _EmpathyRosterGroupPriv EmpathyRosterGroupPriv;
 struct _EmpathyRosterGroupClass
 {
   /*<private>*/
-  GtkExpanderClass parent_class;
+  GtkListBoxRowClass parent_class;
 };
 
 struct _EmpathyRosterGroup
 {
   /*<private>*/
-  GtkExpander parent;
+  GtkListBoxRow parent;
   EmpathyRosterGroupPriv *priv;
+
+  /*<public>*/
+  GtkExpander *expander;
 };
 
 GType empathy_roster_group_get_type (void);
index bf2a4697e6aef4fb2e570400ee652c12fe3101c4..595681f8d951b961ed3a123823410ac1ef8026b4 100644 (file)
@@ -211,7 +211,7 @@ group_expanded_cb (EmpathyRosterGroup *group,
   g_list_free (widgets);
 
   empathy_contact_group_set_expanded (empathy_roster_group_get_name (group),
-      gtk_expander_get_expanded (GTK_EXPANDER (group)));
+      gtk_expander_get_expanded (group->expander));
 }
 
 static EmpathyRosterGroup *
@@ -238,7 +238,7 @@ ensure_roster_group (EmpathyRosterView *self,
   else
     roster_group = empathy_roster_group_new (group, NULL);
 
-  gtk_expander_set_expanded (GTK_EXPANDER (roster_group),
+  gtk_expander_set_expanded (EMPATHY_ROSTER_GROUP (roster_group)->expander,
       empathy_contact_group_get_expanded (group));
 
   g_signal_connect (roster_group, "notify::expanded",
@@ -900,7 +900,7 @@ filter_contact (EmpathyRosterView *self,
         {
           /* When searching, always display even if the group is closed */
           if (!is_searching (self) &&
-              !gtk_expander_get_expanded (GTK_EXPANDER (group)))
+              !gtk_expander_get_expanded (group->expander))
             displayed = FALSE;
         }
     }