pidgin/gtkstatusbox.c

branch
next.minor
changeset 29689
dee2d04f22bb
parent 29686
f9dee36112d0
parent 29298
44ae7afa8fd0
child 30706
612b36b49058
equal deleted inserted replaced
29688:d5409dbda6e7 29689:dee2d04f22bb
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 /*

mercurial