wm: handling of temporarily hidden views
This commit is contained in:
parent
0ab74e61d7
commit
e0233604fa
|
@ -136,6 +136,12 @@ class Wm::Decorator_content_registry
|
||||||
return _lookup(view_handle).win_id;
|
return _lookup(view_handle).win_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_registered(Nitpicker::Session::View_handle view_handle) const
|
||||||
|
{
|
||||||
|
try { lookup(view_handle); return true; } catch (...) { }
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove entry
|
* Remove entry
|
||||||
*
|
*
|
||||||
|
@ -383,6 +389,15 @@ struct Wm::Decorator_nitpicker_session : Genode::Rpc_object<Nitpicker::Session>
|
||||||
|
|
||||||
void destroy_view(View_handle view) override
|
void destroy_view(View_handle view) override
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Reset view geometry when destroying a content view
|
||||||
|
*/
|
||||||
|
if (_content_registry.is_registered(view)) {
|
||||||
|
Nitpicker::Rect rect(Nitpicker::Point(0, 0), Nitpicker::Area(0, 0));
|
||||||
|
_nitpicker_session.enqueue<Nitpicker::Session::Command::Geometry>(view, rect);
|
||||||
|
_nitpicker_session.execute();
|
||||||
|
}
|
||||||
|
|
||||||
_nitpicker_session.destroy_view(view);
|
_nitpicker_session.destroy_view(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user