diff --git a/toplevel.cpp b/toplevel.cpp index 78f510edcc..735aeba3e9 100644 --- a/toplevel.cpp +++ b/toplevel.cpp @@ -145,11 +145,14 @@ void Toplevel::disownDataPassedToDeleted() QRect Toplevel::visibleRect() const { - QRect r = decorationRect(); + // There's no strict order between frame geometry and buffer geometry. + QRect rect = frameGeometry() | bufferGeometry(); + if (shadow() && !shadow()->shadowRegion().isEmpty()) { - r |= shadow()->shadowRegion().boundingRect(); + rect |= shadow()->shadowRegion().boundingRect().translated(pos()); } - return r.translated(frameGeometry().topLeft()); + + return rect; } Xcb::Property Toplevel::fetchWmClientLeader() const