From: <dat...@us...> - 2006-11-28 00:15:44
|
Revision: 17832 http://svn.sourceforge.net/gaim/?rev=17832&view=rev Author: datallah Date: 2006-11-27 16:15:31 -0800 (Mon, 27 Nov 2006) Log Message: ----------- Fix "Hide new IM conversations when away" to update the conv that gets show when you return. This makes the conv tab title, the "hidden" prpl icon overlay and the "hidden" blist indicator all update correctly. Modified Paths: -------------- trunk/gtk/gtkblist.c trunk/gtk/gtkconv.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-27 22:34:46 UTC (rev 17831) +++ trunk/gtk/gtkblist.c 2006-11-28 00:15:31 UTC (rev 17832) @@ -3424,17 +3424,18 @@ static GtkWidget *menu = NULL; GList *convs = NULL; - if (menu) + if (menu) { gtk_widget_destroy(menu); + menu = NULL; + } - menu = gtk_menu_new(); - convs = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_IM, GAIM_UNSEEN_TEXT, TRUE, 0); - if (!convs) { + if (!convs) /* no conversations added, don't show the menu */ - gtk_widget_destroy(menu); return; - } + + menu = gtk_menu_new(); + gaim_gtk_conversations_fill_menu(menu, convs); g_list_free(convs); gtk_widget_show_all(menu); Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-11-27 22:34:46 UTC (rev 17831) +++ trunk/gtk/gtkconv.c 2006-11-28 00:15:31 UTC (rev 17832) @@ -74,9 +74,9 @@ { GAIM_GTKCONV_SET_TITLE = 1 << 0, GAIM_GTKCONV_BUDDY_ICON = 1 << 1, - GAIM_GTKCONV_MENU = 1 << 2, + GAIM_GTKCONV_MENU = 1 << 2, GAIM_GTKCONV_TAB_ICON = 1 << 3, - GAIM_GTKCONV_TOPIC = 1 << 4, + GAIM_GTKCONV_TOPIC = 1 << 4, GAIM_GTKCONV_SMILEY_THEME = 1 << 5, GAIM_GTKCONV_COLORIZE_TITLE = 1 << 6 }GaimGtkConvFields; @@ -6356,6 +6356,10 @@ gaim_gtk_conv_window_remove_gtkconv(hidden_convwin, gtkconv); gaim_gtkconv_placement_place(gtkconv); + + /* TODO: do we need to do anything for any other conversations that are in the same gtkconv here? + * I'm a little concerned that not doing so will cause the "pending" indicator in the gtkblist not to be cleared. -DAA*/ + gaim_conversation_update(conv, GAIM_CONV_UPDATE_UNSEEN); } } @@ -7180,7 +7184,7 @@ if (tab_clicked == -1) return FALSE; - + gtkconv = gaim_gtk_conv_window_get_gtkconv_at_index(win, tab_clicked); close_conv_cb(NULL, gtkconv); return TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |