From: <amc...@us...> - 2006-09-04 04:11:54
|
Revision: 17153 http://svn.sourceforge.net/gaim/?rev=17153&view=rev Author: amc_grim Date: 2006-09-03 21:11:51 -0700 (Sun, 03 Sep 2006) Log Message: ----------- Let's not even bother creating and assigning variables until we need them and when we're sure we won't crash when already trying to get them. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-04 04:08:07 UTC (rev 17152) +++ trunk/gtk/gtkblist.c 2006-09-04 04:11:51 UTC (rev 17153) @@ -4366,13 +4366,6 @@ int count; gboolean show = FALSE; GaimBlistNode* gnode; - GdkColor bgcolor; - GdkColor textcolor; - - if (gtkblist) { - bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; - textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; - } g_return_if_fail(node != NULL); @@ -4403,12 +4396,17 @@ GtkTreeIter iter; GtkTreePath *path; gboolean expanded; - + GdkColor bgcolor; + GdkColor textcolor; + if(!insert_node(list, gnode, &iter)) return; - path = gtk_tree_model_get_path(gtkblist->treemodel, &iter); - expanded = gtk_tree_view_row_expanded(gtkblist->treeview, path); + bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; + textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; + + path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); + expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path); gtk_tree_path_free(path); esc = g_markup_escape_text(group->name, -1); @@ -4518,13 +4516,6 @@ GaimContact *contact; GaimBuddy *buddy; struct _gaim_gtk_blist_node *gtknode; - GdkColor bgcolor; - GdkColor textcolor; - - if (gtkblist) { - bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; - textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; - } if (GAIM_BLIST_NODE_IS_BUDDY(node)) cnode = node->parent; @@ -4555,6 +4546,11 @@ GdkPixbuf *status; char *mark; char *white; + GdkColor bgcolor; + GdkColor textcolor; + + bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; + textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; status = gaim_gtk_blist_get_status_icon(cnode, (gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons") ? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-09-09 19:44:43
|
Revision: 17200 http://svn.sourceforge.net/gaim/?rev=17200&view=rev Author: rlaager Date: 2006-09-09 12:31:45 -0700 (Sat, 09 Sep 2006) Log Message: ----------- SF Patch #1554423 from charkins Fixes SF Bug #1429503 "When creating the blist, gaim currently calls gtk_widget_show_all() on the window, then immediately hides it if using the docklet and the blist was hidden when gaim last quit. Bug #1429503 reports that the buddy list window will flash on the screen when starting gaim (though I can't reproduce it). This patch changes that behavior so that the gtk_widget_show_all() is called on the vbox, not the window. gtk_widget_show() will still get called on the window when appropriate (either immediately, or when the user clicks the docklet, etc)." Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-09 10:39:06 UTC (rev 17199) +++ trunk/gtk/gtkblist.c 2006-09-09 19:31:45 UTC (rev 17200) @@ -4081,7 +4081,7 @@ /* OK... let's show this bad boy. */ gaim_gtk_blist_refresh(list); gaim_gtk_blist_restore_position(); - gtk_widget_show_all(GTK_WIDGET(gtkblist->window)); + gtk_widget_show_all(GTK_WIDGET(gtkblist->vbox)); gaim_blist_set_visible(gaim_prefs_get_bool("/gaim/gtk/blist/list_visible")); /* start the refresh timer */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-09-11 00:31:52
|
Revision: 17232 http://svn.sourceforge.net/gaim/?rev=17232&view=rev Author: thekingant Date: 2006-09-10 17:31:48 -0700 (Sun, 10 Sep 2006) Log Message: ----------- Patch from Casey Harkins to get rid of an assertion failure at startup. Goooooooooo charkins! Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-11 00:28:35 UTC (rev 17231) +++ trunk/gtk/gtkblist.c 2006-09-11 00:31:48 UTC (rev 17232) @@ -4082,6 +4082,7 @@ gaim_gtk_blist_refresh(list); gaim_gtk_blist_restore_position(); gtk_widget_show_all(GTK_WIDGET(gtkblist->vbox)); + gtk_widget_realize(GTK_WIDGET(gtkblist->window)); gaim_blist_set_visible(gaim_prefs_get_bool("/gaim/gtk/blist/list_visible")); /* start the refresh timer */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-09-12 20:11:59
|
Revision: 17262 http://svn.sourceforge.net/gaim/?rev=17262&view=rev Author: seanegan Date: 2006-09-12 13:11:56 -0700 (Tue, 12 Sep 2006) Log Message: ----------- Remove funky contact coloring and try group backgrounds with bg instead of base Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-12 17:22:09 UTC (rev 17261) +++ trunk/gtk/gtkblist.c 2006-09-12 20:11:56 UTC (rev 17262) @@ -4380,8 +4380,8 @@ if(!insert_node(list, gnode, &iter)) return; - bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; - textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; + bgcolor = gtkblist->treeview->style->bg[GTK_STATE_ACTIVE]; + textcolor = gtkblist->treeview->style->fg[GTK_STATE_ACTIVE]; path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path); @@ -4414,11 +4414,10 @@ static void buddy_node(GaimBuddy *buddy, GtkTreeIter *iter, GaimBlistNode *node) { GaimPresence *presence; - GdkColor expandcolor; GdkPixbuf *status, *avatar; char *mark; char *idle = NULL; - gboolean expanded = ((struct _gaim_gtk_blist_node*)(node->parent->ui_data))->contact_expanded; + gboolean expanded = ((struct _gaim_gtk_blist_node *)(node->parent->ui_data))->contact_expanded; gboolean selected = (gtkblist->selected_node == node); gboolean biglist = gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons"); presence = gaim_buddy_get_presence(buddy); @@ -4456,15 +4455,6 @@ } } - if (expanded) { - GdkColor fore = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; - GdkColor back = gtkblist->treeview->style->base[GTK_STATE_NORMAL]; - expandcolor.red = (fore.red + back.red) / 2; - expandcolor.green = (fore.green + back.green) / 2; - expandcolor.blue = (fore.blue + back.blue) / 2; - } - - gtk_tree_store_set(gtkblist->treemodel, iter, STATUS_ICON_COLUMN, status, STATUS_ICON_VISIBLE_COLUMN, TRUE, @@ -4473,7 +4463,7 @@ IDLE_VISIBLE_COLUMN, !biglist && idle, BUDDY_ICON_COLUMN, avatar, BUDDY_ICON_VISIBLE_COLUMN, biglist, - BGCOLOR_COLUMN, expanded ? &expandcolor : NULL, + BGCOLOR_COLUMN, NULL, CONTACT_EXPANDER_COLUMN, NULL, CONTACT_EXPANDER_VISIBLE_COLUMN, expanded, -1); @@ -4524,33 +4514,24 @@ GdkPixbuf *status; char *mark; char *white; - GdkColor bgcolor; - GdkColor textcolor; - - bgcolor = gtkblist->treeview->style->base[GTK_STATE_ACTIVE]; - textcolor = gtkblist->treeview->style->text[GTK_STATE_ACTIVE]; status = gaim_gtk_blist_get_status_icon(cnode, (gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons") ? GAIM_STATUS_ICON_LARGE : GAIM_STATUS_ICON_SMALL)); mark = g_markup_escape_text(gaim_contact_get_alias(contact), -1); - white = g_strdup_printf("<span color='#%02x%02x%02x'>%s</span>", - textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, - mark); - g_free(mark); gtk_tree_store_set(gtkblist->treemodel, &iter, STATUS_ICON_COLUMN, status, STATUS_ICON_VISIBLE_COLUMN, TRUE, - NAME_COLUMN, white, + NAME_COLUMN, mark, IDLE_COLUMN, NULL, IDLE_VISIBLE_COLUMN, FALSE, - BGCOLOR_COLUMN, &bgcolor, + BGCOLOR_COLUMN, NULL, BUDDY_ICON_COLUMN, NULL, CONTACT_EXPANDER_COLUMN, gtkblist->expander_expanded, CONTACT_EXPANDER_VISIBLE_COLUMN, TRUE, -1); - g_free(white); + g_free(mark); if(status) g_object_unref(status); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-09-15 17:10:43
|
Revision: 17283 http://svn.sourceforge.net/gaim/?rev=17283&view=rev Author: seanegan Date: 2006-09-15 10:10:37 -0700 (Fri, 15 Sep 2006) Log Message: ----------- Only color the group name when not selected Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-15 02:05:23 UTC (rev 17282) +++ trunk/gtk/gtkblist.c 2006-09-15 17:10:37 UTC (rev 17283) @@ -4349,6 +4349,7 @@ int count; gboolean show = FALSE; GaimBlistNode* gnode; + gboolean selected = gtkblist ? (gtkblist->selected_node == node) : FALSE; g_return_if_fail(node != NULL); @@ -4393,10 +4394,16 @@ gtk_tree_path_free(path); esc = g_markup_escape_text(group->name, -1); - mark = g_strdup_printf("<span color='#%02x%02x%02x'><span weight='bold'>%s</span> (%d/%d)</span>", - textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, - esc, gaim_blist_get_group_online_count(group), - gaim_blist_get_group_size(group, FALSE)); + if (selected) + mark = g_strdup_printf("<span weight='bold'>%s</span> (%d/%d)", + esc, gaim_blist_get_group_online_count(group), + gaim_blist_get_group_size(group, FALSE)); + else + mark = g_strdup_printf("<span color='#%02x%02x%02x'><span weight='bold'>%s</span> (%d/%d)</span>", + textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, + esc, gaim_blist_get_group_online_count(group), + gaim_blist_get_group_size(group, FALSE)); + g_free(esc); gtk_tree_store_set(gtkblist->treemodel, &iter, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-09-16 00:56:15
|
Revision: 17285 http://svn.sourceforge.net/gaim/?rev=17285&view=rev Author: seanegan Date: 2006-09-15 17:56:13 -0700 (Fri, 15 Sep 2006) Log Message: ----------- Thinking about it, group counts are kinda stupid. I think I've been their major defender in the various prefslashes, so I don't think anyone objects to me removing them. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-15 22:05:34 UTC (rev 17284) +++ trunk/gtk/gtkblist.c 2006-09-16 00:56:13 UTC (rev 17285) @@ -4401,14 +4401,11 @@ esc = g_markup_escape_text(group->name, -1); if (selected) - mark = g_strdup_printf("<span weight='bold'>%s</span> (%d/%d)", - esc, gaim_blist_get_group_online_count(group), - gaim_blist_get_group_size(group, FALSE)); + mark = g_strdup_printf("<span weight='bold'>%s</span>",esc); else - mark = g_strdup_printf("<span color='#%02x%02x%02x'><span weight='bold'>%s</span> (%d/%d)</span>", + mark = g_strdup_printf("<span color='#%02x%02x%02x' weight='bold'>%s</span>", textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, - esc, gaim_blist_get_group_online_count(group), - gaim_blist_get_group_size(group, FALSE)); + esc); g_free(esc); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-09-17 04:42:47
|
Revision: 17290 http://svn.sourceforge.net/gaim/?rev=17290&view=rev Author: sadrul Date: 2006-09-16 21:42:42 -0700 (Sat, 16 Sep 2006) Log Message: ----------- If a group is selected, and one of the buddies change status/goes online/offline, the color of the selected group sometimes gets changed. This fixes that. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-16 20:16:47 UTC (rev 17289) +++ trunk/gtk/gtkblist.c 2006-09-17 04:42:42 UTC (rev 17290) @@ -4357,7 +4357,7 @@ int count; gboolean show = FALSE; GaimBlistNode* gnode; - gboolean selected = gtkblist ? (gtkblist->selected_node == node) : FALSE; + gboolean selected; g_return_if_fail(node != NULL); @@ -4370,6 +4370,7 @@ else return; + selected = gtkblist ? (gtkblist->selected_node == gnode) : FALSE; group = (GaimGroup*)gnode; if(gaim_prefs_get_bool("/gaim/gtk/blist/show_offline_buddies")) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-09-25 07:31:52
|
Revision: 17348 http://svn.sourceforge.net/gaim/?rev=17348&view=rev Author: deryni9 Date: 2006-09-25 00:31:48 -0700 (Mon, 25 Sep 2006) Log Message: ----------- More signal registration fixes. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-25 07:27:02 UTC (rev 17347) +++ trunk/gtk/gtkblist.c 2006-09-25 07:31:48 UTC (rev 17348) @@ -5483,23 +5483,26 @@ /* Register our signals */ gaim_signal_register(gtk_blist_handle, "gtkblist-hiding", - gaim_marshal_VOID__POINTER, NULL, 1, - gaim_value_new(GAIM_TYPE_POINTER)); + gaim_marshal_VOID__POINTER, NULL, 1, + gaim_value_new(GAIM_TYPE_SUBTYPE, + GAIM_SUBTYPE_BLIST)); gaim_signal_register(gtk_blist_handle, "gtkblist-unhiding", - gaim_marshal_VOID__POINTER, NULL, 1, - gaim_value_new(GAIM_TYPE_SUBTYPE)); + gaim_marshal_VOID__POINTER, NULL, 1, + gaim_value_new(GAIM_TYPE_SUBTYPE, + GAIM_SUBTYPE_BLIST)); gaim_signal_register(gtk_blist_handle, "gtkblist-created", - gaim_marshal_VOID__POINTER, NULL, 1, - gaim_value_new(GAIM_TYPE_SUBTYPE, - GAIM_SUBTYPE_BLIST)); + gaim_marshal_VOID__POINTER, NULL, 1, + gaim_value_new(GAIM_TYPE_SUBTYPE, + GAIM_SUBTYPE_BLIST)); gaim_signal_register(gtk_blist_handle, "drawing-tooltip", - gaim_marshal_VOID__POINTER_POINTER_UINT, NULL, 3, - gaim_value_new(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_BLIST_NODE), - gaim_value_new_outgoing(GAIM_TYPE_BOXED, "GString *"), - gaim_value_new(GAIM_TYPE_BOOLEAN)); + gaim_marshal_VOID__POINTER_POINTER_UINT, NULL, 3, + gaim_value_new(GAIM_TYPE_SUBTYPE, + GAIM_SUBTYPE_BLIST_NODE), + gaim_value_new_outgoing(GAIM_TYPE_BOXED, "GString *"), + gaim_value_new(GAIM_TYPE_BOOLEAN)); gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", gtk_blist_handle, GAIM_CALLBACK(buddy_signonoff_cb), NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-09-30 03:08:52
|
Revision: 17406 http://svn.sourceforge.net/gaim/?rev=17406&view=rev Author: deryni9 Date: 2006-09-29 20:08:47 -0700 (Fri, 29 Sep 2006) Log Message: ----------- It was discussed on gaim-devel a little while ago that having group counts on collapsed groups might be a good idea, so here that is. It's not perfect, there seem to be some redrawing issues here, the blist row doesn't get redrawn until you select a different row, but I'm not sure that there's anything to do about that (and even if there is I don't know what). Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-30 03:02:01 UTC (rev 17405) +++ trunk/gtk/gtkblist.c 2006-09-30 03:08:47 UTC (rev 17406) @@ -4385,10 +4385,11 @@ show = TRUE;} if (show) { + char group_count[12] = ""; char *mark, *esc; GtkTreeIter iter; GtkTreePath *path; - gboolean expanded; + gboolean expanded; GdkColor bgcolor; GdkColor textcolor; @@ -4402,13 +4403,19 @@ expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path); gtk_tree_path_free(path); + if (!expanded) { + g_snprintf(group_count, sizeof(group_count), " (%d/%d)", + gaim_blist_get_group_online_count(group), + gaim_blist_get_group_size(group, FALSE)); + } + esc = g_markup_escape_text(group->name, -1); if (selected) - mark = g_strdup_printf("<span weight='bold'>%s</span>",esc); + mark = g_strdup_printf("<span weight='bold'>%s</span>%s", esc, group_count); else - mark = g_strdup_printf("<span color='#%02x%02x%02x' weight='bold'>%s</span>", + mark = g_strdup_printf("<span color='#%02x%02x%02x' weight='bold'>%s</span>%s", textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, - esc); + esc, group_count); g_free(esc); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-10-04 02:52:46
|
Revision: 17407 http://svn.sourceforge.net/gaim/?rev=17407&view=rev Author: sadrul Date: 2006-09-29 20:49:00 -0700 (Fri, 29 Sep 2006) Log Message: ----------- Selecting 'Rename' or 'Alias' in the buddylist should always work now. Also, set the properties depending on GTK+ version. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-09-30 03:08:47 UTC (rev 17406) +++ trunk/gtk/gtkblist.c 2006-09-30 03:49:00 UTC (rev 17407) @@ -406,7 +406,12 @@ g_object_set(G_OBJECT(gtkblist->text_rend), "editable", TRUE, NULL); gtk_tree_view_set_enable_search (GTK_TREE_VIEW(gtkblist->treeview), FALSE); gtk_widget_grab_focus(gtkblist->treeview); +#if GTK_CHECK_VERSION(2,2,0) + gtk_tree_view_set_cursor_on_cell(GTK_TREE_VIEW(gtkblist->treeview), path, + gtkblist->text_column, gtkblist->text_rend, TRUE); +#else gtk_tree_view_set_cursor(GTK_TREE_VIEW(gtkblist->treeview), path, gtkblist->text_column, TRUE); +#endif gtk_tree_path_free(path); } @@ -3984,17 +3989,21 @@ gtk_tree_view_column_pack_start(column, rend, FALSE); gtk_tree_view_column_set_attributes(column, rend, "expander-visible", GROUP_EXPANDER_COLUMN, +#if GTK_CHECK_VERSION(2,6,0) "sensitive", GROUP_EXPANDER_COLUMN, "cell-background-gdk", BGCOLOR_COLUMN, +#endif NULL); rend = gaim_gtk_cell_renderer_expander_new(); gtk_tree_view_column_pack_start(column, rend, FALSE); gtk_tree_view_column_set_attributes(column, rend, "expander-visible", CONTACT_EXPANDER_COLUMN, +#if GTK_CHECK_VERSION(2,6,0) "sensitive", CONTACT_EXPANDER_COLUMN, + "cell-background-gdk", BGCOLOR_COLUMN, +#endif "visible", CONTACT_EXPANDER_VISIBLE_COLUMN, - "cell-background-gdk", BGCOLOR_COLUMN, NULL); rend = gtk_cell_renderer_pixbuf_new(); @@ -4002,14 +4011,18 @@ gtk_tree_view_column_set_attributes(column, rend, "pixbuf", STATUS_ICON_COLUMN, "visible", STATUS_ICON_VISIBLE_COLUMN, +#if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, +#endif NULL); g_object_set(rend, "xalign", 0.0, "ypad", 0, NULL); gtkblist->text_rend = rend = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start (column, rend, TRUE); gtk_tree_view_column_set_attributes(column, rend, +#if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, +#endif "markup", NAME_COLUMN, NULL); g_signal_connect(G_OBJECT(rend), "edited", G_CALLBACK(gtk_blist_renderer_edited_cb), NULL); @@ -4025,14 +4038,18 @@ gtk_tree_view_column_set_attributes(column, rend, "markup", IDLE_COLUMN, "visible", IDLE_VISIBLE_COLUMN, +#if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, +#endif NULL); rend = gtk_cell_renderer_pixbuf_new(); g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); gtk_tree_view_column_pack_start(column, rend, FALSE); gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN, +#if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, +#endif "visible", BUDDY_ICON_VISIBLE_COLUMN, NULL); @@ -4416,7 +4433,7 @@ mark = g_strdup_printf("<span color='#%02x%02x%02x' weight='bold'>%s</span>%s", textcolor.red>>8, textcolor.green>>8, textcolor.blue>>8, esc, group_count); - + g_free(esc); gtk_tree_store_set(gtkblist->treemodel, &iter, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-10-07 17:03:41
|
Revision: 17438 http://svn.sourceforge.net/gaim/?rev=17438&view=rev Author: nosnilmot Date: 2006-10-07 10:03:26 -0700 (Sat, 07 Oct 2006) Log Message: ----------- Fix Coverity CID 144 - return value of "get_iter_from_node" should be checked Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-10-07 17:01:58 UTC (rev 17437) +++ trunk/gtk/gtkblist.c 2006-10-07 17:03:26 UTC (rev 17438) @@ -907,8 +907,6 @@ GaimBlistNode *bnode; GtkTreePath *path; - struct _expand *ex = g_new0(struct _expand, 1); - if(!GAIM_BLIST_NODE_IS_CONTACT(node)) return; @@ -921,16 +919,19 @@ } /* This ensures that the bottom buddy is visible, i.e. not scrolled off the alignment */ - get_iter_from_node(node, &parent); - gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent, - gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &parent) -1); - path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); + if (get_iter_from_node(node, &parent)) { + struct _expand *ex = g_new0(struct _expand, 1); - /* Let the treeview draw so it knows where to scroll */ - ex->treeview = GTK_TREE_VIEW(gtkblist->treeview); - ex->path = path; - ex->node = node->child; - g_idle_add(scroll_to_expanded_cell, ex); + gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(gtkblist->treemodel), &iter, &parent, + gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gtkblist->treemodel), &parent) -1); + path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter); + + /* Let the treeview draw so it knows where to scroll */ + ex->treeview = GTK_TREE_VIEW(gtkblist->treeview); + ex->path = path; + ex->node = node->child; + g_idle_add(scroll_to_expanded_cell, ex); + } } static void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-10-26 06:20:22
|
Revision: 17587 http://svn.sourceforge.net/gaim/?rev=17587&view=rev Author: rlaager Date: 2006-10-25 23:20:18 -0700 (Wed, 25 Oct 2006) Log Message: ----------- SF Patch #1579670 from Richard Nelson (wabz) "Choosing to show/hide empty groups does nothing. This patch rectifies, hopefully in the correct way." Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-10-26 06:18:51 UTC (rev 17586) +++ trunk/gtk/gtkblist.c 2006-10-26 06:20:18 UTC (rev 17587) @@ -4191,6 +4191,8 @@ gaim_gtk_blist_update_buddy(list, node, rerender); else if (GAIM_BLIST_NODE_IS_CHAT(node)) gaim_gtk_blist_update(list, node); + else if (GAIM_BLIST_NODE_IS_GROUP(node)) + gaim_gtk_blist_update(list, node); node = gaim_blist_node_next(node, FALSE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-17 06:12:17
|
Revision: 17767 http://svn.sourceforge.net/gaim/?rev=17767&view=rev Author: datallah Date: 2006-11-16 22:12:17 -0800 (Thu, 16 Nov 2006) Log Message: ----------- Ari Pollak traced down a memory leak to the account menuitems not being cleaned up by gtk_container_remove(). It turns out that there is an additional reference somewhere which is preventing the menuitem from being destroyed - deryni tracked it down to gtk_accel_label_set_accel_widget() in gtk_image_menu_item_new_with_label() - we will be reporting the bug to the GTK folks tomorrow. This fixes the leakage; gtk_widget_destroy() is what really should be used in this situation anyway. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-17 04:31:21 UTC (rev 17766) +++ trunk/gtk/gtkblist.c 2006-11-17 06:12:17 UTC (rev 17767) @@ -5965,8 +5965,7 @@ menuitem = l->data; if (menuitem != gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts/Add\\/Edit"))) - gtk_container_remove(GTK_CONTAINER(accountmenu), - menuitem); + gtk_widget_destroy(menuitem); } for (accounts = gaim_accounts_get_all(); accounts; accounts = accounts->next) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-11-17 19:28:04
|
Revision: 17768 http://svn.sourceforge.net/gaim/?rev=17768&view=rev Author: datallah Date: 2006-11-17 11:27:58 -0800 (Fri, 17 Nov 2006) Log Message: ----------- some more situations where gtk_widget_destroy() should be used instead of gtk_container_remove() Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-17 06:12:17 UTC (rev 17767) +++ trunk/gtk/gtkblist.c 2006-11-17 19:27:58 UTC (rev 17768) @@ -560,7 +560,7 @@ rebuild_joinchat_entries(GaimGtkJoinChatData *data) { GaimConnection *gc; - GList *list = NULL, *tmp = NULL; + GList *list = NULL, *tmp; GHashTable *defaults = NULL; struct proto_chat_entry *pce; gboolean focus = TRUE; @@ -569,11 +569,8 @@ gc = gaim_account_get_connection(data->account); - while (GTK_BOX(data->entries_box)->children) - { - gtk_container_remove(GTK_CONTAINER(data->entries_box), - ((GtkBoxChild *)GTK_BOX(data->entries_box)->children->data)->widget); - } + while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box)))) + gtk_widget_destroy(tmp->data); g_list_free(data->entries); data->entries = NULL; @@ -5111,7 +5108,7 @@ rebuild_addchat_entries(GaimGtkAddChatData *data) { GaimConnection *gc; - GList *list = NULL, *tmp = NULL; + GList *list = NULL, *tmp; GHashTable *defaults = NULL; struct proto_chat_entry *pce; gboolean focus = TRUE; @@ -5120,11 +5117,8 @@ gc = gaim_account_get_connection(data->account); - while (GTK_BOX(data->entries_box)->children) - { - gtk_container_remove(GTK_CONTAINER(data->entries_box), - ((GtkBoxChild *)GTK_BOX(data->entries_box)->children->data)->widget); - } + while ((tmp = gtk_container_get_children(GTK_CONTAINER(data->entries_box)))) + gtk_widget_destroy(tmp->data); g_list_free(data->entries); @@ -6126,17 +6120,14 @@ submenu = l->data; - menuitems = gtk_container_get_children(GTK_CONTAINER(submenu)); - while (menuitems != NULL) + while ((menuitems = gtk_container_get_children(GTK_CONTAINER(submenu))) != NULL) { - GaimPluginAction *action; menuitem = menuitems->data; - action = g_object_get_data(G_OBJECT(menuitem), "plugin_action"); - g_free(action); - menuitems = g_list_delete_link(menuitems, menuitems); + g_free(g_object_get_data(G_OBJECT(menuitem), "plugin_action")); + gtk_widget_destroy(menuitem); } - gtk_container_remove(GTK_CONTAINER(pluginmenu), GTK_WIDGET(submenu)); + gtk_widget_destroy(GTK_WIDGET(submenu)); } g_list_free(plugin_submenus); plugin_submenus = NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-11-19 07:37:49
|
Revision: 17781 http://svn.sourceforge.net/gaim/?rev=17781&view=rev Author: rlaager Date: 2006-11-18 23:37:48 -0800 (Sat, 18 Nov 2006) Log Message: ----------- SF Patch #1597271 from Ryan Barrett "this patch enables GTK menu accelerators in the account-specific and Enable Account submenus of the Accounts menu. other menus have the same code - for example, the plugin action menu in gaim_gtk_blist_update_plugin_actions(), right below the patched function - so i'm guessing it was just missing, and not an intentional design decision." Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-19 07:02:33 UTC (rev 17780) +++ trunk/gtk/gtkblist.c 2006-11-19 07:37:48 UTC (rev 17781) @@ -5948,6 +5948,7 @@ gaim_gtk_blist_update_accounts_menu(void) { GtkWidget *menuitem = NULL, *submenu = NULL; + GtkAccelGroup *accel_group = NULL; GList *l = NULL, *accounts = NULL; gboolean disabled_accounts = FALSE; @@ -5964,6 +5965,7 @@ for (accounts = gaim_accounts_get_all(); accounts; accounts = accounts->next) { char *buf = NULL; + char *accel_path_buf = NULL; GtkWidget *image = NULL; GaimConnection *gc = NULL; GaimAccount *account = NULL; @@ -5971,11 +5973,13 @@ GdkPixbuf *pixbuf = NULL; account = accounts->data; + accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); if(gaim_account_get_enabled(account, GAIM_GTK_UI)) { buf = g_strconcat(gaim_account_get_username(account), " (", gaim_account_get_protocol_name(account), ")", NULL); menuitem = gtk_image_menu_item_new_with_label(buf); + accel_path_buf = g_strconcat(N_("<GaimMain>/Accounts/"), buf, NULL); g_free(buf); status = gaim_account_get_active_status(account); pixbuf = gaim_gtk_create_prpl_icon_with_status(account, gaim_status_get_type(status), 0.5); @@ -5993,6 +5997,9 @@ gtk_widget_show(menuitem); submenu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); + gtk_menu_set_accel_path(GTK_MENU(submenu), accel_path_buf); + g_free(accel_path_buf); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); gtk_widget_show(submenu); @@ -6061,6 +6068,8 @@ gtk_widget_show(menuitem); submenu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); + gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<GaimMain>/Accounts/Enable Account")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); gtk_widget_show(submenu); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-11-22 18:15:10
|
Revision: 17809 http://svn.sourceforge.net/gaim/?rev=17809&view=rev Author: sadrul Date: 2006-11-22 10:15:01 -0800 (Wed, 22 Nov 2006) Log Message: ----------- Unleak Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-22 15:50:27 UTC (rev 17808) +++ trunk/gtk/gtkblist.c 2006-11-22 18:15:01 UTC (rev 17809) @@ -3727,12 +3727,14 @@ static void account_modified(GaimAccount *account, GaimGtkBuddyList *gtkblist) { + GList *list; if (!gtkblist) return; - if (gaim_accounts_get_all_active()) + if ((list = gaim_accounts_get_all_active()) != NULL) { gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1); - else + g_list_free(list); + } else gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 0); update_menu_bar(gtkblist); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-11-22 18:16:54
|
Revision: 17810 http://svn.sourceforge.net/gaim/?rev=17810&view=rev Author: seanegan Date: 2006-11-22 10:16:51 -0800 (Wed, 22 Nov 2006) Log Message: ----------- fixed Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-22 18:15:01 UTC (rev 17809) +++ trunk/gtk/gtkblist.c 2006-11-22 18:16:51 UTC (rev 17810) @@ -4029,8 +4029,9 @@ gtkblist->vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL); gtk_widget_show_all(gtkblist->notebook); + if (gaim_accounts_get_all_active()) + gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1); - /****************************** GtkTreeView **********************************/ sw = gtk_scrolled_window_new(NULL,NULL); gtk_widget_show(sw); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-11-22 19:38:09
|
Revision: 17812 http://svn.sourceforge.net/gaim/?rev=17812&view=rev Author: seanegan Date: 2006-11-22 10:47:42 -0800 (Wed, 22 Nov 2006) Log Message: ----------- fix this leak too Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-11-22 18:40:11 UTC (rev 17811) +++ trunk/gtk/gtkblist.c 2006-11-22 18:47:42 UTC (rev 17812) @@ -3945,6 +3945,7 @@ GtkWidget *sw; GtkWidget *sep; GtkWidget *label; + GList *accounts; char *pretty; GtkAccelGroup *accel_group; GtkTreeSelection *selection; @@ -4029,8 +4030,10 @@ gtkblist->vbox = gtk_vbox_new(FALSE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL); gtk_widget_show_all(gtkblist->notebook); - if (gaim_accounts_get_all_active()) + if (accounts = gaim_accounts_get_all_active()) { + g_list_free(accounts); gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1); + } /****************************** GtkTreeView **********************************/ sw = gtk_scrolled_window_new(NULL,NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ev...@us...> - 2006-12-10 03:01:45
|
Revision: 17933 http://svn.sourceforge.net/gaim/?rev=17933&view=rev Author: evands Date: 2006-12-09 19:01:42 -0800 (Sat, 09 Dec 2006) Log Message: ----------- I answered my own question. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-10 02:58:30 UTC (rev 17932) +++ trunk/gtk/gtkblist.c 2006-12-10 03:01:42 UTC (rev 17933) @@ -2600,11 +2600,9 @@ } else if (GAIM_BLIST_NODE_IS_CONTACT(node) || GAIM_BLIST_NODE_IS_BUDDY(node)) { - /* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS - * See create_tip_for_node(). - * - * create_tip_for_node() calls this function - what does the above mean? -evands */ - + /* NOTE: THIS FUNCTION IS NO LONGER CALLED FOR CONTACTS. + * It is only called by create_tip_for_node(), and create_tip_for_node() is never called for a contact. + */ GaimContact *c; GaimBuddy *b; GaimPresence *presence; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-12-13 18:33:18
|
Revision: 17987 http://svn.sourceforge.net/gaim/?rev=17987&view=rev Author: sadrul Date: 2006-12-13 10:33:15 -0800 (Wed, 13 Dec 2006) Log Message: ----------- Run the callback just once. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-13 16:57:33 UTC (rev 17986) +++ trunk/gtk/gtkblist.c 2006-12-13 18:33:15 UTC (rev 17987) @@ -3686,11 +3686,19 @@ } static gboolean +headline_click_callback(gpointer data) +{ + ((GSourceFunc)gtkblist->headline_callback)(gtkblist->headline_data); + return FALSE; +} + +static gboolean headline_box_press_cb(GtkWidget *widget, GdkEventButton *event, GaimGtkBuddyList *gtkblist) { gtk_widget_hide(gtkblist->headline_hbox); if (gtkblist->headline_callback) - g_idle_add(G_CALLBACK(gtkblist->headline_callback), gtkblist->headline_data); + g_idle_add((GSourceFunc)headline_click_callback, gtkblist->headline_data); + return TRUE; } /***********************************/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-12-13 21:29:25
|
Revision: 17988 http://svn.sourceforge.net/gaim/?rev=17988&view=rev Author: datallah Date: 2006-12-13 13:29:16 -0800 (Wed, 13 Dec 2006) Log Message: ----------- Fix for glib < 2.10.0 I'm a little confused about the final g_object_unref() - it seems like that might would the ref-count zero (I don't see anywhere where "tooltips" is being referenced). Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-13 18:33:15 UTC (rev 17987) +++ trunk/gtk/gtkblist.c 2006-12-13 21:29:16 UTC (rev 17988) @@ -2742,7 +2742,7 @@ gaim_notify_user_info_add_pair(user_info, _("Status"), _("Awesome")); if (!g_ascii_strcasecmp(b->name, "chipx86")) gaim_notify_user_info_add_pair(user_info, _("Status"), _("Rockin'")); - + tmp = gaim_notify_user_info_get_text_with_newline(user_info, "\n"); g_string_append(str, tmp); g_free(tmp); @@ -3825,7 +3825,7 @@ GdkEventExpose *event, gpointer user_data) { - gtk_paint_flat_box (widget->style, + gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, @@ -3836,8 +3836,8 @@ widget->allocation.y + 1, widget->allocation.width - 2, widget->allocation.height - 2); - - return FALSE; + + return FALSE; } static void @@ -3846,21 +3846,26 @@ { GtkTooltips *tooltips; GtkStyle *style; - + if (gtkblist->changing_style) return; - + tooltips = gtk_tooltips_new (); +#if GLIB_CHECK_VERSION(2,10,0) g_object_ref_sink (tooltips); +#else + g_object_ref(tooltips); + gtk_object_sink(GTK_OBJECT(tooltips)); +#endif gtk_tooltips_force_window (tooltips); gtk_widget_ensure_style (tooltips->tip_window); style = gtk_widget_get_style (tooltips->tip_window); - + gtkblist->changing_style = TRUE; gtk_widget_set_style (gtkblist->headline_hbox, style); - gtkblist->changing_style = FALSE; - + gtkblist->changing_style = FALSE; + g_object_unref (tooltips); } @@ -3904,7 +3909,7 @@ gtk_box_pack_start(GTK_BOX(ret), bbox, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(bbox), button); - + label = gtk_label_new(NULL); gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0); @@ -3995,7 +4000,7 @@ /* Translators: Please maintain the use of -> and <- to refer to menu heirarchy */ pretty = gaim_gtk_make_pretty_arrows(_("<span weight='bold' size='larger'>Welcome to Gaim!</span>\n\n" - + "You have no accounts enabled. Enable your IM accounts from the " "<b>Accounts</b> window at <b>Accounts->Add/Edit</b>. Once you " "enable accounts, you'll be able to sign on, set your status, " @@ -4043,7 +4048,7 @@ g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist); g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist); g_signal_connect(G_OBJECT(ebox), "button-press-event", G_CALLBACK(headline_box_press_cb), gtkblist); - + /****************************** GtkTreeView **********************************/ sw = gtk_scrolled_window_new(NULL,NULL); gtk_widget_show(sw); @@ -4053,7 +4058,7 @@ gtkblist->treemodel = gtk_tree_store_new(BLIST_COLUMNS, GDK_TYPE_PIXBUF, /* Status icon */ G_TYPE_BOOLEAN, /* Status icon visible */ - G_TYPE_STRING, /* Name */ + G_TYPE_STRING, /* Name */ G_TYPE_STRING, /* Idle */ G_TYPE_BOOLEAN, /* Idle visible */ GDK_TYPE_PIXBUF, /* Buddy icon */ @@ -4095,7 +4100,7 @@ g_signal_connect(G_OBJECT(gtkblist->treeview), "leave-notify-event", G_CALLBACK(gaim_gtk_blist_leave_cb), NULL); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(gtkblist->treeview), FALSE); - + column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(gtkblist->treeview), column); gtk_tree_view_column_set_visible(column, FALSE); @@ -4152,25 +4157,25 @@ rend = gtk_cell_renderer_text_new(); g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); gtk_tree_view_column_pack_start(column, rend, FALSE); - gtk_tree_view_column_set_attributes(column, rend, - "markup", IDLE_COLUMN, + gtk_tree_view_column_set_attributes(column, rend, + "markup", IDLE_COLUMN, "visible", IDLE_VISIBLE_COLUMN, #if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, #endif NULL); - + rend = gtk_cell_renderer_pixbuf_new(); g_object_set(rend, "xalign", 1.0, "ypad", 0, NULL); gtk_tree_view_column_pack_start(column, rend, FALSE); - gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN, + gtk_tree_view_column_set_attributes(column, rend, "pixbuf", BUDDY_ICON_COLUMN, #if GTK_CHECK_VERSION(2,6,0) "cell-background-gdk", BGCOLOR_COLUMN, #endif "visible", BUDDY_ICON_VISIBLE_COLUMN, NULL); - + g_signal_connect(G_OBJECT(gtkblist->treeview), "row-activated", G_CALLBACK(gtk_blist_row_activated_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->treeview), "row-expanded", G_CALLBACK(gtk_blist_row_expanded_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->treeview), "row-collapsed", G_CALLBACK(gtk_blist_row_collapsed_cb), NULL); @@ -4190,7 +4195,7 @@ gtkblist->scrollbook = gtk_gaim_scroll_book_new(); gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->scrollbook, FALSE, FALSE, 0); - + /* Create an empty vbox used for showing connection errors */ gtkblist->error_buttons = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0); @@ -4292,7 +4297,7 @@ // gtk_widget_hide(gtkblist->scrollbook); gtk_widget_hide(gtkblist->headline_hbox); - + /* emit our created signal */ gaim_signal_emit(handle, "gtkblist-created", list); } @@ -4534,7 +4539,7 @@ gboolean expanded; GdkColor bgcolor; GdkColor textcolor; - + if(!insert_node(list, gnode, &iter)) return; @@ -4560,7 +4565,7 @@ esc, group_count); g_free(esc); - + gtk_tree_store_set(gtkblist->treemodel, &iter, STATUS_ICON_VISIBLE_COLUMN, FALSE, STATUS_ICON_COLUMN, NULL, @@ -4849,7 +4854,7 @@ g_free(gtkblist); accountmenu = NULL; gtkblist = NULL; - + gdk_cursor_unref(gtkblist->hand_cursor); gdk_cursor_unref(gtkblist->arrow_cursor); gtkblist->hand_cursor = NULL; @@ -5527,7 +5532,7 @@ { gtk_label_set_markup(GTK_LABEL(gtkblist->headline_label), text); gtk_image_set_from_pixbuf(GTK_IMAGE(gtkblist->headline_image), pixbuf); - + gtkblist->headline_callback = callback; gtkblist->headline_data = user_data; gtk_widget_show_all(gtkblist->headline_hbox); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-12-16 09:58:26
|
Revision: 18010 http://svn.sourceforge.net/gaim/?rev=18010&view=rev Author: sadrul Date: 2006-12-16 01:58:26 -0800 (Sat, 16 Dec 2006) Log Message: ----------- Do not use gtkblist after freeing and setting it to NULL. Disconnect from the all signals when uniniting. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-15 10:35:18 UTC (rev 18009) +++ trunk/gtk/gtkblist.c 2006-12-16 09:58:26 UTC (rev 18010) @@ -4794,6 +4794,8 @@ static void gaim_gtk_blist_update(GaimBuddyList *list, GaimBlistNode *node) { + if (list) + gtkblist = GAIM_GTK_BLIST(list); if(!gtkblist || !node) return; @@ -4828,10 +4830,7 @@ if (!gtkblist) return; - gaim_signal_disconnect(gaim_connections_get_handle(), "signed-on", - gtkblist, GAIM_CALLBACK(sign_on_off_cb)); - gaim_signal_disconnect(gaim_connections_get_handle(), "signed-off", - gtkblist, GAIM_CALLBACK(sign_on_off_cb)); + gaim_signals_disconnect_by_handle(gtkblist); gtk_widget_destroy(gtkblist->window); @@ -4851,15 +4850,15 @@ gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL; gtkblist->treemodel = NULL; g_object_unref(G_OBJECT(gtkblist->ift)); - g_free(gtkblist); - accountmenu = NULL; - gtkblist = NULL; gdk_cursor_unref(gtkblist->hand_cursor); gdk_cursor_unref(gtkblist->arrow_cursor); gtkblist->hand_cursor = NULL; gtkblist->arrow_cursor = NULL; + g_free(gtkblist); + accountmenu = NULL; + gtkblist = NULL; gaim_prefs_disconnect_by_handle(gaim_gtk_blist_get_handle()); } @@ -5684,6 +5683,7 @@ void gaim_gtk_blist_uninit(void) { gaim_signals_unregister_by_instance(gaim_gtk_blist_get_handle()); + gaim_signals_disconnect_by_handle(gaim_gtk_blist_get_handle()); } /********************************************************************* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-12-17 08:10:16
|
Revision: 18014 http://svn.sourceforge.net/gaim/?rev=18014&view=rev Author: thekingant Date: 2006-12-17 00:06:48 -0800 (Sun, 17 Dec 2006) Log Message: ----------- This started throwing an assertion failure for me recently Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-17 05:38:48 UTC (rev 18013) +++ trunk/gtk/gtkblist.c 2006-12-17 08:06:48 UTC (rev 18014) @@ -6316,7 +6316,7 @@ GtkWidget *sortmenu; const char *m = gaim_prefs_get_string("/gaim/gtk/blist/sort_type"); - if (gtkblist == NULL) + if ((gtkblist == NULL) || (gtkblist->ift == NULL)) return; sortmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Buddies/Sort Buddies")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-12-21 08:14:05
|
Revision: 18035 http://svn.sourceforge.net/gaim/?rev=18035&view=rev Author: thekingant Date: 2006-12-21 00:14:05 -0800 (Thu, 21 Dec 2006) Log Message: ----------- Get rid of a compile warning: gtkblist.c: In function ?\226?\128?\152redo_buddy_list?\226?\128?\153: gtkblist.c:4378: warning: ISO C90 forbids mixed declarations and code Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-21 00:40:21 UTC (rev 18034) +++ trunk/gtk/gtkblist.c 2006-12-21 08:14:05 UTC (rev 18035) @@ -4371,11 +4371,13 @@ static void redo_buddy_list(GaimBuddyList *list, gboolean remove, gboolean rerender) { + GaimBlistNode *node; + gtkblist = GAIM_GTK_BLIST(list); if(!gtkblist || !gtkblist->treeview) return; - GaimBlistNode *node = list->root; + node = list->root; while (node) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2007-04-01 17:31:56
|
Revision: 18225 http://svn.sourceforge.net/gaim/?rev=18225&view=rev Author: thekingant Date: 2007-04-01 10:31:56 -0700 (Sun, 01 Apr 2007) Log Message: ----------- sf patch #1689182, from Will Thompson gtkblist: remove code duplication, and plug a leak Over in gtkblist.c, the code to generate plugin action menus is the same for regular plugins and prpls, except that there is non-NULL context in the latter. It was copy-pasted. Now it is not. Incidentally, the version in gaim_gtk_blist_update_accounts_menu was leaking the list every time: a pointer to the start was kept, presumably with the intention that the list be freed, but it never actually was. Modified Paths: -------------- trunk/gtk/gtkblist.c Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2007-04-01 08:06:29 UTC (rev 18224) +++ trunk/gtk/gtkblist.c 2007-04-01 17:31:56 UTC (rev 18225) @@ -6202,13 +6202,14 @@ } static void -build_plugin_actions(GtkWidget *menu, GaimPlugin *plugin) +build_plugin_actions(GtkWidget *menu, GaimPlugin *plugin, + GaimConnection *context) { GtkWidget *menuitem; GaimPluginAction *action = NULL; GList *actions, *l; - actions = GAIM_PLUGIN_ACTIONS(plugin, NULL); + actions = GAIM_PLUGIN_ACTIONS(plugin, context); for (l = actions; l != NULL; l = l->next) { @@ -6216,7 +6217,7 @@ { action = (GaimPluginAction *) l->data; action->plugin = plugin; - action->context = NULL; + action->context = context; menuitem = gtk_menu_item_new_with_label(action->label); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); @@ -6288,6 +6289,7 @@ GaimAccount *account = NULL; GaimStatus *status = NULL; GdkPixbuf *pixbuf = NULL; + GaimPlugin *plugin = NULL; account = accounts->data; accel_group = gtk_menu_get_accel_group(GTK_MENU(accountmenu)); @@ -6330,35 +6332,12 @@ gaim_separator(submenu); gc = gaim_account_get_connection(account); - if (gc && GAIM_CONNECTION_IS_CONNECTED(gc)) { - GaimPlugin *plugin = NULL; + plugin = gc ? gc->prpl : NULL; - plugin = gc->prpl; - if (GAIM_PLUGIN_HAS_ACTIONS(plugin)) { - GList *l, *ll = NULL; - GaimPluginAction *action = NULL; - - for (l = ll = GAIM_PLUGIN_ACTIONS(plugin, gc); l; l = l->next) { - if (l->data) { - action = (GaimPluginAction *)l->data; - action->plugin = plugin; - action->context = gc; - - menuitem = gtk_menu_item_new_with_label(action->label); - gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); - g_signal_connect(G_OBJECT(menuitem), "activate", - G_CALLBACK(plugin_act), action); - g_object_set_data_full(G_OBJECT(menuitem), "plugin_action", action, (GDestroyNotify)gaim_plugin_action_free); - gtk_widget_show(menuitem); - } else - gaim_separator(submenu); - } - } else { - menuitem = gtk_menu_item_new_with_label(_("No actions available")); - gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); - gtk_widget_set_sensitive(menuitem, FALSE); - gtk_widget_show(menuitem); - } + if (gc && GAIM_CONNECTION_IS_CONNECTED(gc) + && GAIM_PLUGIN_HAS_ACTIONS(plugin)) + { + build_plugin_actions(submenu, plugin, gc); } else { menuitem = gtk_menu_item_new_with_label(_("No actions available")); gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); @@ -6474,7 +6453,7 @@ gtk_menu_set_accel_path(GTK_MENU(submenu), path); g_free(path); - build_plugin_actions(submenu, plugin); + build_plugin_actions(submenu, plugin, NULL); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |