diff console/libgnt/gnttree.c @ 15052:34e049e6ce10

[gaim-migrate @ 17835] Patch from wabz to: - Fix bug #1602136 - Better handle resizing of trees - Make the tooltip-info more closely resemble the tooltip-info in Gaim. Also remove some unnecessary debug statements. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 28 Nov 2006 07:06:37 +0000
parents e601bc7880a6
children 68385f5bbd61
line wrap: on
line diff
--- a/console/libgnt/gnttree.c	Tue Nov 28 06:59:48 2006 +0000
+++ b/console/libgnt/gnttree.c	Tue Nov 28 07:06:37 2006 +0000
@@ -669,6 +669,22 @@
 }
 
 static void
+gnt_tree_size_changed(GntWidget *widget, int w, int h)
+{
+	GntTree *tree = GNT_TREE(widget);
+	int i;
+	int n = 0;
+	if (widget->priv.width <= 0)
+		return;
+	for (i = 0; i < tree->ncol; ++i)
+		n += tree->columns[i].width;
+	if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_BORDER))
+		tree->columns[tree->ncol - 1].width += widget->priv.width - n - 1 * tree->ncol;
+	else
+		tree->columns[tree->ncol - 1].width += widget->priv.width - n - 2 - 1 * tree->ncol;
+}
+
+static void
 gnt_tree_class_init(GntTreeClass *klass)
 {
 	GntBindableClass *bindable = GNT_BINDABLE_CLASS(klass);
@@ -679,6 +695,7 @@
 	parent_class->size_request = gnt_tree_size_request;
 	parent_class->key_pressed = gnt_tree_key_pressed;
 	parent_class->clicked = gnt_tree_clicked;
+	parent_class->size_changed = gnt_tree_size_changed;
 
 	signals[SIG_SELECTION_CHANGED] = 
 		g_signal_new("selection-changed",