configure xwayland surfaces without monitors
For wine clients often configurex11() is called before mapnotify() and
therefore c->mon is NULL. configurex11 just returns early in that case,
letting these clients stay in the wrong size. For example only the top
left part of winecfg and wine uninstaller is drawn, or confirmation
dialogs like when closing wine notepad are too big. Fix this by
configuring their surfaces like before 88d386b.
			
			
This commit is contained in:
		
				
					committed by
					
						
						Leonardo Hernández Hernández
					
				
			
			
				
	
			
			
			
						parent
						
							ac6074f4fd
						
					
				
				
					commit
					863634a61c
				
			
							
								
								
									
										6
									
								
								dwl.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								dwl.c
									
									
									
									
									
								
							@@ -2844,8 +2844,12 @@ configurex11(struct wl_listener *listener, void *data)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	Client *c = wl_container_of(listener, c, configure);
 | 
						Client *c = wl_container_of(listener, c, configure);
 | 
				
			||||||
	struct wlr_xwayland_surface_configure_event *event = data;
 | 
						struct wlr_xwayland_surface_configure_event *event = data;
 | 
				
			||||||
	if (!c->mon)
 | 
						/* TODO: figure out if there is another way to do this */
 | 
				
			||||||
 | 
						if (!c->mon) {
 | 
				
			||||||
 | 
							wlr_xwayland_surface_configure(c->surface.xwayland,
 | 
				
			||||||
 | 
									event->x, event->y, event->width, event->height);
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if (c->isfloating || client_is_unmanaged(c))
 | 
						if (c->isfloating || client_is_unmanaged(c))
 | 
				
			||||||
		resize(c, (struct wlr_box){.x = event->x, .y = event->y,
 | 
							resize(c, (struct wlr_box){.x = event->x, .y = event->y,
 | 
				
			||||||
				.width = event->width, .height = event->height}, 0);
 | 
									.width = event->width, .height = event->height}, 0);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user