brasero r1814 - in trunk: . src



Author: philippr
Date: Fri Jan 23 12:51:27 2009
New Revision: 1814
URL: http://svn.gnome.org/viewvc/brasero?rev=1814&view=rev

Log:
2009-01-23  Philippe Rouquier  <ykw localhost localdomain>

	Try to fix #560114 â seg fault when dragging files from user's directory

	* src/eggtreemultidnd.c (egg_tree_multi_drag_button_press_event):



Modified:
   trunk/ChangeLog
   trunk/src/eggtreemultidnd.c

Modified: trunk/src/eggtreemultidnd.c
==============================================================================
--- trunk/src/eggtreemultidnd.c	(original)
+++ trunk/src/eggtreemultidnd.c	Fri Jan 23 12:51:27 2009
@@ -373,10 +373,25 @@
 				 &path, &column,
 				 &cell_x, &cell_y);
 
-  selection = gtk_tree_view_get_selection (tree_view);
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
 
   if (path && gtk_tree_selection_path_is_selected (selection, path))
     {
+      GList *iter;
+      GList *selected;
+      GtkWidgetClass *widget_klass;
+
+      /* The call to ::button_press_event will unselect all selected rows so
+       * we must save the selection and select all previously selected rows
+       * again. */
+      selected = gtk_tree_selection_get_selected_rows (selection, NULL);
+
+      widget_klass = GTK_WIDGET_GET_CLASS (tree_view);
+      widget_klass->button_press_event (widget, event);
+
+      for (iter = selected; iter; iter = iter->next)
+        gtk_tree_selection_select_path (selection, iter->data);
+
       priv_data->pressed_button = event->button;
       priv_data->x = event->x;
       priv_data->y = event->y;



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