17 #ifndef MIRAL_SHELL_FLOATING_WINDOW_MANAGER_H
18 #define MIRAL_SHELL_FLOATING_WINDOW_MANAGER_H
20 #include <miral/minimal_window_manager.h>
24 #include <mir_toolkit/events/enums.h>
42 std::function<
void()>& shutdown_hook);
82 void toggle(MirWindowState state);
84 int old_touch_pinch_top = 0;
85 int old_touch_pinch_left = 0;
86 int old_touch_pinch_width = 0;
87 int old_touch_pinch_height = 0;
88 bool pinching =
false;
92 std::unique_ptr<DecorationProvider>
const decoration_provider;
94 void keep_window_within_constraints(
96 Displacement& movement,
98 Height& new_height)
const;
101 std::chrono::steady_clock::time_point last_resize;
103 void advise_adding_to_workspace(
104 std::shared_ptr<
miral::Workspace>
const& workspace,
105 std::vector<miral::Window>
const& windows)
override;
107 auto confirm_placement_on_display(
109 MirWindowState new_state,
110 Rectangle
const& new_placement) -> Rectangle
override;
113 void switch_workspace_to(
114 std::shared_ptr<
miral::Workspace>
const& workspace,
117 std::shared_ptr<
miral::Workspace> active_workspace;
118 std::map<
int, std::shared_ptr<miral::Workspace>> key_to_workspace;
119 std::map<std::shared_ptr<miral::Workspace>, miral::Window> workspace_to_active;
121 void apply_workspace_visible_to(
miral::
Window const& window);
123 void apply_workspace_hidden_to(
miral::
Window const& window);
125 void keep_spinner_on_top();