MCPcopy Create free account
hub / github.com/WayfireWM/wayfire / set_overlay_view

Method set_overlay_view

plugins/vswitch/vswitch.cpp:189–226  ·  view source on GitHub ↗

* Set the overlay view. It will be hidden from the normal workspace layers * and shown on top of the workspace wall. The overlay view's position is * not animated together with the workspace transition, but its alpha is. * * Note: if the view disappears, the caller is responsible for resetting the * overlay view. * * @param view The desired overlay view, or NULL

Source from the content-addressed store, hash-verified

187 * to be unset.
188 */
189 virtual void set_overlay_view(wayfire_toplevel_view view)
190 {
191 if (this->overlay_view == view)
192 {
193 /* Nothing to do */
194 return;
195 }
196
197 /* Reset old view */
198 if (this->overlay_view)
199 {
200 wf::scene::set_node_enabled(overlay_view->get_transformed_node(), true);
201 overlay_view->get_transformed_node()->rem_transformer(
202 vswitch_view_transformer_name);
203
204 wf::scene::remove_child(overlay_view_node);
205 overlay_view_node.reset();
206 }
207
208 /* Set new view */
209 this->overlay_view = view;
210 if (view)
211 {
212 view->get_transformed_node()->add_transformer(
213 std::make_shared<wf::scene::view_2d_transformer_t>(view),
214 wf::TRANSFORMER_2D, vswitch_view_transformer_name);
215 wf::scene::set_node_enabled(view->get_transformed_node(), false);
216
217 // Render as an overlay, but make sure it is translated to the local output
218 auto vswitch_overlay = std::make_shared<vswitch_overlay_node_t>(view);
219
220 overlay_view_node = std::make_shared<scene::translation_node_t>();
221 overlay_view_node->set_children_list({vswitch_overlay});
222 overlay_view_node->set_offset(origin(output->get_layout_geometry()));
223
224 wf::scene::add_front(wf::get_core().scene(), overlay_view_node);
225 }
226 }
227
228 /** @return the current overlay view, might be NULL. */
229 virtual wayfire_view get_overlay_view()

Callers 2

add_directionMethod · 0.80
vswitchClass · 0.80

Calls 9

set_node_enabledFunction · 0.85
remove_childFunction · 0.85
add_frontFunction · 0.85
rem_transformerMethod · 0.80
set_children_listMethod · 0.80
set_offsetMethod · 0.80
get_layout_geometryMethod · 0.80
resetMethod · 0.45
add_transformerMethod · 0.45

Tested by

no test coverage detected