]> git.0d.be Git - empathy.git/commitdiff
roster-view: export empathy_roster_view_get_individual_at_y()
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 22 Jun 2012 07:40:15 +0000 (09:40 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 26 Jun 2012 09:16:26 +0000 (11:16 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=678524

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

index 111b643b6d53c8a1a7d15a6988f0f219b02313a7..8dc739fded5782fd6a2ce1565ccfa795522c3c8e 100644 (file)
@@ -1262,6 +1262,27 @@ empathy_roster_view_key_press_event (GtkWidget *widget,
   return chain_up (widget, event);
 }
 
   return chain_up (widget, event);
 }
 
+/**
+ * @out_child: (out) (allow-none)
+ */
+FolksIndividual *
+empathy_roster_view_get_individual_at_y (EmpathyRosterView *self,
+    gint y,
+    GtkWidget **out_child)
+{
+  GtkWidget *child;
+
+  child = egg_list_box_get_child_at_y (EGG_LIST_BOX (self), y);
+
+  if (out_child != NULL)
+    *out_child = child;
+
+  if (!EMPATHY_IS_ROSTER_CONTACT (child))
+    return NULL;
+
+  return empathy_roster_contact_get_individual (EMPATHY_ROSTER_CONTACT (child));
+}
+
 static gboolean
 empathy_roster_view_query_tooltip (GtkWidget *widget,
     gint x,
 static gboolean
 empathy_roster_view_query_tooltip (GtkWidget *widget,
     gint x,
@@ -1270,18 +1291,14 @@ empathy_roster_view_query_tooltip (GtkWidget *widget,
     GtkTooltip *tooltip)
 {
   EmpathyRosterView *self = EMPATHY_ROSTER_VIEW (widget);
     GtkTooltip *tooltip)
 {
   EmpathyRosterView *self = EMPATHY_ROSTER_VIEW (widget);
-  GtkWidget *child;
-  EmpathyRosterContact *contact;
   FolksIndividual *individual;
   gboolean result;
   FolksIndividual *individual;
   gboolean result;
+  GtkWidget *child;
 
 
-  child = egg_list_box_get_child_at_y (EGG_LIST_BOX (self), y);
-  if (!EMPATHY_IS_ROSTER_CONTACT (child))
+  individual = empathy_roster_view_get_individual_at_y (self, y, &child);
+  if (individual == NULL)
     return FALSE;
 
     return FALSE;
 
-  contact = EMPATHY_ROSTER_CONTACT (child);
-  individual = empathy_roster_contact_get_individual (contact);
-
   g_signal_emit (self, signals[SIG_INDIVIDUAL_TOOLTIP], 0,
       individual, keyboard_mode, tooltip, &result);
 
   g_signal_emit (self, signals[SIG_INDIVIDUAL_TOOLTIP], 0,
       individual, keyboard_mode, tooltip, &result);
 
index a0ed775154dc9dd4d04585ae860ea3225c23da40..ff9ba6c57b29d2f838b9cb53f8cf3c2c612822f0 100644 (file)
@@ -76,6 +76,11 @@ guint empathy_roster_view_add_event (EmpathyRosterView *self,
 void empathy_roster_view_remove_event (EmpathyRosterView *self,
     guint event_id);
 
 void empathy_roster_view_remove_event (EmpathyRosterView *self,
     guint event_id);
 
+FolksIndividual * empathy_roster_view_get_individual_at_y (
+    EmpathyRosterView *self,
+    gint y,
+    GtkWidget **out_child);
+
 G_END_DECLS
 
 #endif /* #ifndef __EMPATHY_ROSTER_VIEW_H__*/
 G_END_DECLS
 
 #endif /* #ifndef __EMPATHY_ROSTER_VIEW_H__*/