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

Class tile_plugin_t

plugins/tile/tile-plugin.cpp:387–517  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

385};
386
387class tile_plugin_t : public wf::plugin_interface_t, wf::per_output_tracker_mixin_t<>
388{
389 shared_data::ref_ptr_t<ipc::method_repository_t> ipc_repo;
390 shared_data::ref_ptr_t<wf::move_drag::core_drag_t> drag_helper;
391 std::unique_ptr<tile::drag_manager_t> preview_manager;
392
393 public:
394 void init() override
395 {
396 init_output_tracking();
397 wf::get_core().connect(&on_view_pre_moved_to_wset);
398 wf::get_core().connect(&on_view_moved_to_wset);
399 wf::get_core().connect(&on_focus_changed);
400 wf::get_core().connect(&on_view_unmapped);
401 ipc_repo->register_method("simple-tile/get-layout", ipc_get_layout);
402 ipc_repo->register_method("simple-tile/set-layout", ipc_set_layout);
403 preview_manager = std::make_unique<tile::drag_manager_t>();
404 }
405
406 void fini() override
407 {
408 preview_manager.reset();
409 fini_output_tracking();
410 for (auto wset : workspace_set_t::get_all())
411 {
412 wset->erase_data<tile_workspace_set_data_t>();
413 }
414
415 for (auto wo : wf::get_core().output_layout->get_outputs())
416 {
417 wo->erase_data<tile_output_plugin_t>();
418 }
419
420 ipc_repo->unregister_method("simple-tile/get-layout");
421 ipc_repo->unregister_method("simple-tile/set-layout");
422 }
423
424 void stop_controller(std::shared_ptr<wf::workspace_set_t> wset)
425 {
426 if (auto wo = wset->get_attached_output())
427 {
428 auto tile = wo->get_data<tile_output_plugin_t>();
429 if (tile)
430 {
431 tile->stop_controller(true);
432 }
433 }
434 }
435
436 wf::signal::connection_t<view_unmapped_signal> on_view_unmapped = [=] (wf::view_unmapped_signal *ev)
437 {
438 auto toplevel = toplevel_cast(ev->view);
439 if (!toplevel)
440 {
441 return;
442 }
443
444 if (wf::tile::view_node_t::get_node(ev->view))

Callers

nothing calls this directly

Calls 13

toplevel_castFunction · 0.85
dassertFunction · 0.85
handle_ipc_get_layoutFunction · 0.85
handle_ipc_set_layoutFunction · 0.85
get_wsetMethod · 0.80
wsetMethod · 0.80
detach_viewMethod · 0.80
detach_viewsMethod · 0.80
is_draggingMethod · 0.80
store_dataMethod · 0.80
get_outputMethod · 0.45

Tested by

no test coverage detected