#include "controller_hooks.hpp"
#include "layers.hpp"
#include "layout.hpp"
+#include "policy.hpp"
#include "result.hpp"
#include "wayland.hpp"
using std::experimental::optional;
struct id_allocator {
- constexpr static const unsigned id_shift = 22;
- constexpr static const unsigned id_mask = (1 << id_shift) - 1;
-
unsigned next = 1;
// Surfaces that where requested but not yet created
struct config config;
// track current layouts separately
- std::map<int, struct LayoutState> layouts;
layer_map layers;
// ID allocation and proxy methods for lookup
std::vector<int> pending_end_draw;
+ Policy policy;
+
explicit App(wl::display *d);
- ~App();
+ ~App() = default;
App(App const &) = delete;
App &operator=(App const &) = delete;
void deactivate_main_surface();
bool can_split(struct LayoutState const &state, int new_id);
+ void try_layout(struct LayoutState &state,
+ struct LayoutState const &new_layout,
+ std::function<void(LayoutState const &nl)> apply);
};
} // namespace wm