| 1697 message = purple_savedstatus_get_message(current); |
1697 message = purple_savedstatus_get_message(current); |
| 1698 prim = purple_savedstatus_get_type(current); |
1698 prim = purple_savedstatus_get_type(current); |
| 1699 |
1699 |
| 1700 newmessage = gnt_entry_get_text(GNT_ENTRY(ggblist->statustext)); |
1700 newmessage = gnt_entry_get_text(GNT_ENTRY(ggblist->statustext)); |
| 1701 item = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(ggblist->status)); |
1701 item = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(ggblist->status)); |
| 1702 g_return_val_if_fail(item->type == STATUS_PRIMITIVE, FALSE); |
1702 |
| 1703 newprim = item->u.prim; |
1703 switch (item->type) { |
| |
1704 case STATUS_PRIMITIVE: |
| |
1705 newprim = item->u.prim; |
| |
1706 break; |
| |
1707 case STATUS_SAVED_POPULAR: |
| |
1708 newprim = purple_savedstatus_get_type(item->u.saved); |
| |
1709 break; |
| |
1710 default: |
| |
1711 goto end; /* 'New' or 'Saved' is selected, but this should never happen. */ |
| |
1712 } |
| 1704 |
1713 |
| 1705 if (newprim != prim || ((message && !newmessage) || |
1714 if (newprim != prim || ((message && !newmessage) || |
| 1706 (!message && newmessage) || |
1715 (!message && newmessage) || |
| 1707 (message && newmessage && g_utf8_collate(message, newmessage) != 0))) |
1716 (message && newmessage && g_utf8_collate(message, newmessage) != 0))) |
| 1708 { |
1717 { |
| 1716 |
1725 |
| 1717 purple_savedstatus_activate(status); |
1726 purple_savedstatus_activate(status); |
| 1718 } |
1727 } |
| 1719 |
1728 |
| 1720 gnt_box_give_focus_to_child(GNT_BOX(ggblist->window), ggblist->tree); |
1729 gnt_box_give_focus_to_child(GNT_BOX(ggblist->window), ggblist->tree); |
| |
1730 end: |
| 1721 if (ggblist->typing) |
1731 if (ggblist->typing) |
| 1722 g_source_remove(ggblist->typing); |
1732 g_source_remove(ggblist->typing); |
| 1723 ggblist->typing = 0; |
1733 ggblist->typing = 0; |
| 1724 return FALSE; |
1734 return FALSE; |
| 1725 } |
1735 } |