Fix for dwm crashing following unmapping of systray window that had been moved to another monitor ref. #423
This commit is contained in:
		
							
								
								
									
										4
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dwm.c
									
									
									
									
									
								
							@@ -2516,8 +2516,10 @@ manage(Window w, XWindowAttributes *wa)
 | 
			
		||||
		#endif // CENTER_TRANSIENT_WINDOWS_PATCH | CENTER_TRANSIENT_WINDOWS_BY_PARENT_PATCH | CENTER_PATCH
 | 
			
		||||
	} else {
 | 
			
		||||
		#if SEAMLESS_RESTART_PATCH
 | 
			
		||||
		if (!settings_restored)
 | 
			
		||||
		if (!settings_restored || c->mon == NULL) {
 | 
			
		||||
			c->mon = selmon;
 | 
			
		||||
			settings_restored = 0;
 | 
			
		||||
		}
 | 
			
		||||
		#else
 | 
			
		||||
		c->mon = selmon;
 | 
			
		||||
		#endif // SEAMLESS_RESTART_PATCH
 | 
			
		||||
 
 | 
			
		||||
@@ -39,12 +39,12 @@ persistclientstate(Client *c)
 | 
			
		||||
int
 | 
			
		||||
restoreclientstate(Client *c)
 | 
			
		||||
{
 | 
			
		||||
	return getclienttags(c)
 | 
			
		||||
		| getclientfields(c)
 | 
			
		||||
	int restored = getclientfields(c);
 | 
			
		||||
	getclienttags(c);
 | 
			
		||||
	#if SAVEFLOATS_PATCH
 | 
			
		||||
		| restorewindowfloatposition(c, c->mon ? c->mon : selmon)
 | 
			
		||||
	restorewindowfloatposition(c, c->mon ? c->mon : selmon);
 | 
			
		||||
	#endif // SAVEFLOATS_PATCH
 | 
			
		||||
	;
 | 
			
		||||
	return restored;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void setmonitorfields(Monitor *m)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user