forked from quickshell/quickshell
		
	hyprland/ipc: fix monitorFor returning null during HyprlandIpc init
This commit is contained in:
		
							parent
							
								
									bc349998df
								
							
						
					
					
						commit
						5d1def3e49
					
				
					 2 changed files with 7 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -465,10 +465,12 @@ HyprlandMonitor* HyprlandIpc::focusedMonitor() const { return this->mFocusedMoni
 | 
			
		|||
 | 
			
		||||
HyprlandMonitor* HyprlandIpc::monitorFor(QuickshellScreenInfo* screen) {
 | 
			
		||||
	// Wayland monitors appear after hyprland ones are created and disappear after destruction
 | 
			
		||||
	// so simply not doing any preemptive creation is enough.
 | 
			
		||||
	// so simply not doing any preemptive creation is enough, however if this call creates
 | 
			
		||||
	// the HyprlandIpc singleton then monitors won't be initialized, in which case we
 | 
			
		||||
	// preemptively create one.
 | 
			
		||||
 | 
			
		||||
	if (screen == nullptr) return nullptr;
 | 
			
		||||
	return this->findMonitorByName(screen->name(), false);
 | 
			
		||||
	return this->findMonitorByName(screen->name(), !this->monitorsRequested);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void HyprlandIpc::setFocusedMonitor(HyprlandMonitor* monitor) {
 | 
			
		||||
| 
						 | 
				
			
			@ -505,6 +507,8 @@ void HyprlandIpc::refreshMonitors(bool canCreate, bool tryAgain) {
 | 
			
		|||
			    return;
 | 
			
		||||
		    }
 | 
			
		||||
 | 
			
		||||
		    this->monitorsRequested = true;
 | 
			
		||||
 | 
			
		||||
		    qCDebug(logHyprlandIpc) << "parsing monitors response";
 | 
			
		||||
		    auto json = QJsonDocument::fromJson(resp).array();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,6 +111,7 @@ private:
 | 
			
		|||
	bool valid = false;
 | 
			
		||||
	bool requestingMonitors = false;
 | 
			
		||||
	bool requestingWorkspaces = false;
 | 
			
		||||
	bool monitorsRequested = false;
 | 
			
		||||
 | 
			
		||||
	ObjectModel<HyprlandMonitor> mMonitors {this};
 | 
			
		||||
	ObjectModel<HyprlandWorkspace> mWorkspaces {this};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue