Handle Menu key presses without crash. (#385637, Christian Persch)
2007-03-11 Matthias Clasen <mclasen@redhat.com> * tests/testiconview.c: Handle Menu key presses without crash. (#385637, Christian Persch) svn path=/trunk/; revision=17485
This commit is contained in:
		
				
					committed by
					
						
						Matthias Clasen
					
				
			
			
				
	
			
			
			
						parent
						
							aa16f8e09b
						
					
				
				
					commit
					d58a93a023
				
			@ -1,3 +1,8 @@
 | 
				
			|||||||
 | 
					2007-03-11  Matthias Clasen  <mclasen@redhat.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* tests/testiconview.c: Handle Menu key presses without
 | 
				
			||||||
 | 
						crash.  (#385637, Christian Persch)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2007-03-11  Matthias Clasen  <mclasen@redhat.com>
 | 
					2007-03-11  Matthias Clasen  <mclasen@redhat.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gtk/gtktooltips.c (gtk_tooltips_get_info_from_tip_window):
 | 
						* gtk/gtktooltips.c (gtk_tooltips_get_info_from_tip_window):
 | 
				
			||||||
 | 
				
			|||||||
@ -329,14 +329,27 @@ static void
 | 
				
			|||||||
do_popup_menu (GtkWidget      *icon_list, 
 | 
					do_popup_menu (GtkWidget      *icon_list, 
 | 
				
			||||||
	       GdkEventButton *event)
 | 
						       GdkEventButton *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  GtkIconView *icon_view = GTK_ICON_VIEW (icon_list); 
 | 
				
			||||||
  GtkWidget *menu;
 | 
					  GtkWidget *menu;
 | 
				
			||||||
  GtkWidget *menuitem;
 | 
					  GtkWidget *menuitem;
 | 
				
			||||||
  GtkTreePath *path;
 | 
					  GtkTreePath *path = NULL;
 | 
				
			||||||
  int button, event_time;
 | 
					  int button, event_time;
 | 
				
			||||||
  ItemData *data;
 | 
					  ItemData *data;
 | 
				
			||||||
 | 
					  GList *list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  path = gtk_icon_view_get_path_at_pos (GTK_ICON_VIEW (icon_list), 
 | 
					  if (event)
 | 
				
			||||||
                                        event->x, event->y);
 | 
					    path = gtk_icon_view_get_path_at_pos (icon_view, event->x, event->y);
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      list = gtk_icon_view_get_selected_items (icon_view);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (list)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          path = (GtkTreePath*)list->data;
 | 
				
			||||||
 | 
					          g_list_foreach (list->next, gtk_tree_path_free, NULL);
 | 
				
			||||||
 | 
					          g_list_free (list);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!path)
 | 
					  if (!path)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
@ -344,7 +357,7 @@ do_popup_menu (GtkWidget      *icon_list,
 | 
				
			|||||||
  menu = gtk_menu_new ();
 | 
					  menu = gtk_menu_new ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  data = g_new0 (ItemData, 1);
 | 
					  data = g_new0 (ItemData, 1);
 | 
				
			||||||
  data->icon_list = GTK_ICON_VIEW (icon_list);
 | 
					  data->icon_list = icon_view;
 | 
				
			||||||
  data->path = path;
 | 
					  data->path = path;
 | 
				
			||||||
  g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data);
 | 
					  g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user