Enable drag and drop on Windows
The issues around it no longer seem to exist in current GTK
This commit is contained in:
		
							parent
							
								
									6fb8cf40e1
								
							
						
					
					
						commit
						011514e1ad
					
				
					 3 changed files with 0 additions and 10 deletions
				
			
		| 
						 | 
					@ -167,7 +167,6 @@ cv_tree_init (chanview *cv)
 | 
				
			||||||
							 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
												 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
				
			||||||
	gtk_drag_source_set (view, GDK_BUTTON1_MASK, dnd_src_target, 1, GDK_ACTION_COPY);
 | 
						gtk_drag_source_set (view, GDK_BUTTON1_MASK, dnd_src_target, 1, GDK_ACTION_COPY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef WIN32
 | 
					 | 
				
			||||||
	g_signal_connect (G_OBJECT (view), "drag_begin",
 | 
						g_signal_connect (G_OBJECT (view), "drag_begin",
 | 
				
			||||||
							G_CALLBACK (mg_drag_begin_cb), NULL);
 | 
												G_CALLBACK (mg_drag_begin_cb), NULL);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (view), "drag_drop",
 | 
						g_signal_connect (G_OBJECT (view), "drag_drop",
 | 
				
			||||||
| 
						 | 
					@ -176,7 +175,6 @@ cv_tree_init (chanview *cv)
 | 
				
			||||||
							G_CALLBACK (mg_drag_motion_cb), NULL);
 | 
												G_CALLBACK (mg_drag_motion_cb), NULL);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (view), "drag_end",
 | 
						g_signal_connect (G_OBJECT (view), "drag_end",
 | 
				
			||||||
							G_CALLBACK (mg_drag_end_cb), NULL);
 | 
												G_CALLBACK (mg_drag_end_cb), NULL);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	((treeview *)cv)->tree = GTK_TREE_VIEW (view);
 | 
						((treeview *)cv)->tree = GTK_TREE_VIEW (view);
 | 
				
			||||||
	((treeview *)cv)->scrollw = win;
 | 
						((treeview *)cv)->scrollw = win;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2358,7 +2358,6 @@ mg_create_textarea (session *sess, GtkWidget *box)
 | 
				
			||||||
	gui->vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (xtext)->adj);
 | 
						gui->vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (xtext)->adj);
 | 
				
			||||||
	gtk_box_pack_start (GTK_BOX (inbox), gui->vscrollbar, FALSE, TRUE, 0);
 | 
						gtk_box_pack_start (GTK_BOX (inbox), gui->vscrollbar, FALSE, TRUE, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef WIN32	/* needs more work */
 | 
					 | 
				
			||||||
	gtk_drag_dest_set (gui->vscrollbar, 5, dnd_dest_targets, 2,
 | 
						gtk_drag_dest_set (gui->vscrollbar, 5, dnd_dest_targets, 2,
 | 
				
			||||||
							 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
												 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (gui->vscrollbar), "drag_begin",
 | 
						g_signal_connect (G_OBJECT (gui->vscrollbar), "drag_begin",
 | 
				
			||||||
| 
						 | 
					@ -2374,7 +2373,6 @@ mg_create_textarea (session *sess, GtkWidget *box)
 | 
				
			||||||
							 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
												 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (gui->xtext), "drag_data_received",
 | 
						g_signal_connect (G_OBJECT (gui->xtext), "drag_data_received",
 | 
				
			||||||
							G_CALLBACK (mg_dialog_dnd_drop), NULL);
 | 
												G_CALLBACK (mg_dialog_dnd_drop), NULL);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static GtkWidget *
 | 
					static GtkWidget *
 | 
				
			||||||
| 
						 | 
					@ -3785,7 +3783,6 @@ mg_is_gui_target (GdkDragContext *context)
 | 
				
			||||||
gboolean
 | 
					gboolean
 | 
				
			||||||
mg_drag_begin_cb (GtkWidget *widget, GdkDragContext *context, gpointer userdata)
 | 
					mg_drag_begin_cb (GtkWidget *widget, GdkDragContext *context, gpointer userdata)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifndef WIN32	/* leaks GDI pool memory - don't use on win32 */
 | 
					 | 
				
			||||||
	int width, height;
 | 
						int width, height;
 | 
				
			||||||
	GdkColormap *cmap;
 | 
						GdkColormap *cmap;
 | 
				
			||||||
	GdkPixbuf *pix, *pix2;
 | 
						GdkPixbuf *pix, *pix2;
 | 
				
			||||||
| 
						 | 
					@ -3804,7 +3801,6 @@ mg_drag_begin_cb (GtkWidget *widget, GdkDragContext *context, gpointer userdata)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gtk_drag_set_icon_pixbuf (context, pix2, 0, 0);
 | 
						gtk_drag_set_icon_pixbuf (context, pix2, 0, 0);
 | 
				
			||||||
	g_object_set_data (G_OBJECT (widget), "ico", pix2);
 | 
						g_object_set_data (G_OBJECT (widget), "ico", pix2);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return TRUE;
 | 
						return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3816,9 +3812,7 @@ mg_drag_end_cb (GtkWidget *widget, GdkDragContext *context, gpointer userdata)
 | 
				
			||||||
	if (!mg_is_gui_target (context))
 | 
						if (!mg_is_gui_target (context))
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef WIN32
 | 
					 | 
				
			||||||
	g_object_unref (g_object_get_data (G_OBJECT (widget), "ico"));
 | 
						g_object_unref (g_object_get_data (G_OBJECT (widget), "ico"));
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* drop complete */
 | 
					/* drop complete */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -643,7 +643,6 @@ userlist_create (GtkWidget *box)
 | 
				
			||||||
							G_CALLBACK (userlist_key_cb), 0);
 | 
												G_CALLBACK (userlist_key_cb), 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* tree/chanview DND */
 | 
						/* tree/chanview DND */
 | 
				
			||||||
#ifndef WIN32	/* leaks GDI pool memory, don't enable */
 | 
					 | 
				
			||||||
	g_signal_connect (G_OBJECT (treeview), "drag_begin",
 | 
						g_signal_connect (G_OBJECT (treeview), "drag_begin",
 | 
				
			||||||
							G_CALLBACK (mg_drag_begin_cb), NULL);
 | 
												G_CALLBACK (mg_drag_begin_cb), NULL);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (treeview), "drag_drop",
 | 
						g_signal_connect (G_OBJECT (treeview), "drag_drop",
 | 
				
			||||||
| 
						 | 
					@ -652,7 +651,6 @@ userlist_create (GtkWidget *box)
 | 
				
			||||||
							G_CALLBACK (mg_drag_motion_cb), NULL);
 | 
												G_CALLBACK (mg_drag_motion_cb), NULL);
 | 
				
			||||||
	g_signal_connect (G_OBJECT (treeview), "drag_end",
 | 
						g_signal_connect (G_OBJECT (treeview), "drag_end",
 | 
				
			||||||
							G_CALLBACK (mg_drag_end_cb), NULL);
 | 
												G_CALLBACK (mg_drag_end_cb), NULL);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	userlist_add_columns (GTK_TREE_VIEW (treeview));
 | 
						userlist_add_columns (GTK_TREE_VIEW (treeview));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue