xwayland: Use correct xwl_window lookup function in xwl_set_shape
In xwl_set_shape(), xwl_window_set_input_region() should be called only
when the input shape of the toplevel window changes.
However, given that xwl_window_from_window() is going to walk the
ancestor tree until it finds an xwl_window, that lookup function cannot
be used. Instead, xwl_window_get() should be used. It's going to return
a valid xwl_window object iff the specified window has one associated
with it.
Fixes: a4ed100c0 - xwayland: Set wl_surface input region
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1672
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1516>
			
			
This commit is contained in:
		
							parent
							
								
									069ad69efe
								
							
						
					
					
						commit
						8c2b9f4e71
					
				| 
						 | 
					@ -341,7 +341,7 @@ xwl_set_shape(WindowPtr window,
 | 
				
			||||||
    struct xwl_window *xwl_window;
 | 
					    struct xwl_window *xwl_window;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xwl_screen = xwl_screen_get(screen);
 | 
					    xwl_screen = xwl_screen_get(screen);
 | 
				
			||||||
    xwl_window = xwl_window_from_window(window);
 | 
					    xwl_window = xwl_window_get(window);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    screen->SetShape = xwl_screen->SetShape;
 | 
					    screen->SetShape = xwl_screen->SetShape;
 | 
				
			||||||
    (*screen->SetShape) (window, kind);
 | 
					    (*screen->SetShape) (window, kind);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue