| 2595 GtkTreeIter iter; |
2595 GtkTreeIter iter; |
| 2596 PidginStatusBoxItemType type; |
2596 PidginStatusBoxItemType type; |
| 2597 gpointer data; |
2597 gpointer data; |
| 2598 GList *accounts = NULL, *node; |
2598 GList *accounts = NULL, *node; |
| 2599 int active; |
2599 int active; |
| |
2600 gboolean wastyping = FALSE; |
| 2600 |
2601 |
| 2601 |
2602 |
| 2602 if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path)) |
2603 if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path)) |
| 2603 return; |
2604 return; |
| 2604 active = gtk_tree_path_get_indices(path)[0]; |
2605 active = gtk_tree_path_get_indices(path)[0]; |
| 2607 |
2608 |
| 2608 gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter, |
2609 gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter, |
| 2609 TYPE_COLUMN, &type, |
2610 TYPE_COLUMN, &type, |
| 2610 DATA_COLUMN, &data, |
2611 DATA_COLUMN, &data, |
| 2611 -1); |
2612 -1); |
| 2612 if (status_box->typing != 0) |
2613 if ((wastyping = (status_box->typing != 0))) |
| 2613 purple_timeout_remove(status_box->typing); |
2614 purple_timeout_remove(status_box->typing); |
| 2614 status_box->typing = 0; |
2615 status_box->typing = 0; |
| 2615 |
2616 |
| 2616 if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET(status_box))) |
2617 if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET(status_box))) |
| 2617 { |
2618 { |
| 2631 if (purple_savedstatus_get_type(saved_status) == PURPLE_STATUS_AVAILABLE) |
2632 if (purple_savedstatus_get_type(saved_status) == PURPLE_STATUS_AVAILABLE) |
| 2632 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AWAY); |
2633 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_AWAY); |
| 2633 pidgin_status_editor_show(FALSE, |
2634 pidgin_status_editor_show(FALSE, |
| 2634 purple_savedstatus_is_transient(saved_status) |
2635 purple_savedstatus_is_transient(saved_status) |
| 2635 ? saved_status : NULL); |
2636 ? saved_status : NULL); |
| 2636 status_menu_refresh_iter(status_box, FALSE); |
2637 status_menu_refresh_iter(status_box, wastyping); |
| |
2638 if (wastyping) |
| |
2639 pidgin_status_box_refresh(status_box); |
| 2637 return; |
2640 return; |
| 2638 } |
2641 } |
| 2639 |
2642 |
| 2640 if (type == PIDGIN_STATUS_BOX_TYPE_SAVED) |
2643 if (type == PIDGIN_STATUS_BOX_TYPE_SAVED) |
| 2641 { |
2644 { |
| 2642 pidgin_status_window_show(); |
2645 pidgin_status_window_show(); |
| 2643 status_menu_refresh_iter(status_box, FALSE); |
2646 status_menu_refresh_iter(status_box, wastyping); |
| |
2647 if (wastyping) |
| |
2648 pidgin_status_box_refresh(status_box); |
| 2644 return; |
2649 return; |
| 2645 } |
2650 } |
| 2646 } |
2651 } |
| 2647 |
2652 |
| 2648 /* |
2653 /* |