diff options
-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())); } |