diff options
Diffstat (limited to 'kms++/src')
| -rw-r--r-- | kms++/src/crtc.cpp | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/kms++/src/crtc.cpp b/kms++/src/crtc.cpp index 2d41bfa..1a46195 100644 --- a/kms++/src/crtc.cpp +++ b/kms++/src/crtc.cpp @@ -95,13 +95,21 @@ int Crtc::disable_plane(Plane* plane)  Plane* Crtc::get_primary_plane()  { +	Plane *primary = NULL; +  	for (Plane* p : get_possible_planes()) {  		if (p->plane_type() != PlaneType::Primary)  			continue; -		return p; +		if (p->crtc_id() == id()) +			return p; + +		primary = p;  	} +	if (primary) +		return primary; +  	throw invalid_argument(string("No primary plane for crtc ") + to_string(id()));  } | 
