Mercurial > pidgin
changeset 8083:08d993c1d843
[gaim-migrate @ 8782]
tooltip fixination
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Mon, 12 Jan 2004 06:09:09 +0000 |
parents | 6b1ecf40f3ba |
children | 0694e3afa206 |
files | src/gtkblist.c |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gtkblist.c Mon Jan 12 05:47:57 2004 +0000 +++ b/src/gtkblist.c Mon Jan 12 06:09:09 2004 +0000 @@ -1475,12 +1475,20 @@ gaim_prefs_get_bool("/gaim/gtk/blist/auto_expand_contacts")) { GtkTreeIter i; gaim_gtk_blist_expand_contact_cb(NULL, node); - tooltip_top = TRUE; /* When the person expands, the new screennames will be below. We'll draw the tip above - the cursor so that the user can see the included buddies */ - + tooltip_top = TRUE; /* When the person expands, the new screennames will be below. + We'll draw the tip above the cursor so that the user can see + the included buddies */ + while (gtk_events_pending()) gtk_main_iteration(); + /* we check to see if we're still supposed to be moving, now that gtk events have + * happened, and the mouse might not still be in the buddy list */ + if(!gtkblist->timeout) { + gaim_gtk_blist_collapse_contact_cb(NULL, node); + return FALSE; + } + gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, >kblist->contact_rect); gdk_drawable_get_size(GDK_DRAWABLE(tv->window), &(gtkblist->contact_rect.width), NULL); gtkblist->mouseover_contact = node; @@ -1600,6 +1608,7 @@ static gboolean gaim_gtk_blist_motion_cb (GtkWidget *tv, GdkEventMotion *event, gpointer null) { GtkTreePath *path; + if (gtkblist->timeout) { if ((event->y > gtkblist->tip_rect.y) && ((event->y - gtkblist->tip_rect.height) < gtkblist->tip_rect.y)) return FALSE; @@ -1639,6 +1648,7 @@ static void gaim_gtk_blist_leave_cb (GtkWidget *w, GdkEventCrossing *e, gpointer n) { + if (gtkblist->timeout) { g_source_remove(gtkblist->timeout); gtkblist->timeout = 0;