Merge lp://staging/~macslow/qtmir/fix-1475678 into lp://staging/qtmir
Proposed by
Mirco Müller
Status: | Work in progress |
---|---|
Proposed branch: | lp://staging/~macslow/qtmir/fix-1475678 |
Merge into: | lp://staging/qtmir |
Diff against target: |
172 lines (+66/-0) 4 files modified
src/modules/Unity/Application/mirsurfaceitem.cpp (+29/-0) src/modules/Unity/Application/mirsurfaceitem.h (+5/-0) src/modules/Unity/Application/mirsurfacemanager.cpp (+29/-0) src/modules/Unity/Application/mirsurfacemanager.h (+3/-0) |
To merge this branch: | bzr merge lp://staging/~macslow/qtmir/fix-1475678 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mir development team | Pending | ||
Review via email: mp+266418@code.staging.launchpad.net |
Commit message
Added hook to allow MirSurfaceManager to mark MirSurfaceItems visible/
Description of the change
Added hook to allow MirSurfaceManager to mark MirSurfaceItems visible/
To post a comment you must log in.
Unmerged revisions
- 349. By Mirco Müller
-
Just use visible as a term instead of visibility for MirSurfaceItem and map that to mir::scene:
:surface' s visibility- attribute. - 348. By Mirco Müller
-
Added hooks to allow MirSurfaceManager to mark MirSurfaceItems visible/
non-visible. - 347. By Mirco Müller
-
Merge with trunk.
- 346. By Mirco Müller
-
Expose visibility property of MirSurfaceItem.
m_surface- >visible( ) scene/basic_ surface. cpp:
this isn't doing what you'd expect. Looking into the Mir code: src/server/
bool ms::BasicSurfac e::visible( ) const :unique_ lock<std: :mutex> lk(guard);
{
std:
return visible(lk);
}
bool ms::BasicSurfac e::visible( std::unique_ lock<std: :mutex> &) const >has_submitted_ buffer( );
{
bool visible{false};
for (auto const& info : layers)
visible |= info.stream-
return !hidden && visible;
}
This is a place where the integration of QtMir and Mir isn't so good. Mir kinda assumes that we're using its Scene, and thus its compositor. But we're not. Our Scene is defined in QML, and our compositor is the Qt scenegraph renderer.
BasicSurface: :visible( ) defines if the surface is visible in Mir's scene. It doesn't notify the client that its surface is exposed or not.
So instead you should ignore this, and read the surface attribute to learn if the client thinks it is exposed or not.