mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	data-device: Don't fake an attach event on drag icon surface
Emit a new drag icon signal instead and let the compositor handle the unmapping of the icon surface.
This commit is contained in:
		
							parent
							
								
									ae8d4b59a4
								
							
						
					
					
						commit
						0a27ce1fc2
					
				
					 1 changed files with 2 additions and 10 deletions
				
			
		| 
						 | 
					@ -228,16 +228,9 @@ drag_grab_motion(struct wl_pointer_grab *grab,
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
data_device_end_drag_grab(struct wl_seat *seat)
 | 
					data_device_end_drag_grab(struct wl_seat *seat)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct wl_resource *surface_resource;
 | 
					 | 
				
			||||||
	struct wl_surface_interface *implementation;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (seat->drag_surface) {
 | 
						if (seat->drag_surface) {
 | 
				
			||||||
		surface_resource = &seat->drag_surface->resource;
 | 
							seat->drag_surface = NULL;
 | 
				
			||||||
		implementation = (struct wl_surface_interface *)
 | 
							wl_signal_emit(&seat->drag_icon_signal, NULL);
 | 
				
			||||||
			surface_resource->object.implementation;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		implementation->attach(surface_resource->client,
 | 
					 | 
				
			||||||
				       surface_resource, NULL, 0, 0);
 | 
					 | 
				
			||||||
		wl_list_remove(&seat->drag_icon_listener.link);
 | 
							wl_list_remove(&seat->drag_icon_listener.link);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -247,7 +240,6 @@ data_device_end_drag_grab(struct wl_seat *seat)
 | 
				
			||||||
	wl_pointer_end_grab(seat->pointer);
 | 
						wl_pointer_end_grab(seat->pointer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	seat->drag_data_source = NULL;
 | 
						seat->drag_data_source = NULL;
 | 
				
			||||||
	seat->drag_surface = NULL;
 | 
					 | 
				
			||||||
	seat->drag_client = NULL;
 | 
						seat->drag_client = NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue