Mercurial > pidgin
changeset 28981:61ea136df111
Refresh the statusbox correctly.
When clicking on 'New' or 'Saved' status from the dropdown, while we were
typing a status message, the statusbox goes into an eternal 'typing'
state, until you change it by clicking on it. This is a fix for that.
Fixes #11289.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 05 Feb 2010 14:38:53 +0000 |
parents | ef1c3791ad32 |
children | 791606778223 |
files | pidgin/gtkstatusbox.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkstatusbox.c Thu Feb 04 23:03:24 2010 +0000 +++ b/pidgin/gtkstatusbox.c Fri Feb 05 14:38:53 2010 +0000 @@ -2630,6 +2630,7 @@ gpointer data; GList *accounts = NULL, *node; int active; + gboolean wastyping = FALSE; if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path)) @@ -2642,7 +2643,7 @@ TYPE_COLUMN, &type, DATA_COLUMN, &data, -1); - if (status_box->typing != 0) + if ((wastyping = (status_box->typing != 0))) purple_timeout_remove(status_box->typing); status_box->typing = 0; @@ -2666,14 +2667,18 @@ pidgin_status_editor_show(FALSE, purple_savedstatus_is_transient(saved_status) ? saved_status : NULL); - status_menu_refresh_iter(status_box, FALSE); + status_menu_refresh_iter(status_box, wastyping); + if (wastyping) + pidgin_status_box_refresh(status_box); return; } if (type == PIDGIN_STATUS_BOX_TYPE_SAVED) { pidgin_status_window_show(); - status_menu_refresh_iter(status_box, FALSE); + status_menu_refresh_iter(status_box, wastyping); + if (wastyping) + pidgin_status_box_refresh(status_box); return; } }