[evolution-patches] Re: [Evolution-hackers] source selector behavior



JP Rosevear wrote:
On Fri, 2004-03-26 at 13:44, William Jon McCann wrote:
For this approach you can't just return TRUE, you must handle clearing
saved selection farther down the selection, and you must make sure
groups are non-selectable and (if memory servers) you must process the
toggled_last stuff to prevent check a toggle box from highlight the
whole row.

Right.  Updated patch attached.

Thanks,
Jon
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/ChangeLog,v
retrieving revision 1.284
diff -p -u -r1.284 ChangeLog
--- ChangeLog	26 Mar 2004 17:12:05 -0000	1.284
+++ ChangeLog	30 Mar 2004 20:24:40 -0000
@@ -1,3 +1,8 @@
+2004-03-26  William Jon McCann  <mccann jhu edu>
+
+	* e-source-selector.c (cell_toggled_callback, selection_func):
+	Decouple check box and highlight when checkbox is shown.
+
 2004-03-26  Rodney Dawes  <dobey ximian com>
 
 	* e-multi-config-dialog.c (init): Remove the dialog separator
Index: e-source-selector.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-source-selector.c,v
retrieving revision 1.14
diff -p -u -r1.14 e-source-selector.c
--- e-source-selector.c	24 Jan 2004 05:36:53 -0000	1.14
+++ e-source-selector.c	30 Mar 2004 20:24:42 -0000
@@ -443,7 +443,8 @@ selection_func (GtkTreeSelection *select
 		return TRUE;
 	}
 
-	e_source_selector_select_source (selector, E_SOURCE (data));
+	if (!selector->priv->checkboxes_shown)
+		e_source_selector_select_source (selector, E_SOURCE (data));
 
 	clear_saved_primary_selection (selector);
 	g_object_unref (data);
@@ -476,19 +477,17 @@ cell_toggled_callback (GtkCellRendererTo
 	} else {
 		source = E_SOURCE (data);
 
-		if (e_source_selector_peek_primary_selection (selector) != source) {
-			if (source_is_selected (selector, source))
-				unselect_source (selector, source);
-			else
-				select_source (selector, source);
+		if (source_is_selected (selector, source))
+			unselect_source (selector, source);
+		else
+			select_source (selector, source);
 			
-			selector->priv->toggled_last = TRUE;
-			
-			gtk_tree_model_row_changed (model, path, &iter);
-			g_signal_emit (selector, signals[SELECTION_CHANGED], 0);
+		selector->priv->toggled_last = TRUE;
+
+		gtk_tree_model_row_changed (model, path, &iter);
+		g_signal_emit (selector, signals[SELECTION_CHANGED], 0);
 			
-			gtk_tree_path_free (path);
-		}
+		gtk_tree_path_free (path);
 	}
 	
 	g_object_unref (data);	


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]