Code Review
/
staging
/
windowmanager.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
App: remove id_shift and id_mask constants
[staging/windowmanager.git]
/
src
/
app.hpp
diff --git
a/src/app.hpp
b/src/app.hpp
index
6e18855
..
aac28cd
100644
(file)
--- a/
src/app.hpp
+++ b/
src/app.hpp
@@
-30,6
+30,7
@@
#include "controller_hooks.hpp"
#include "layers.hpp"
#include "layout.hpp"
#include "controller_hooks.hpp"
#include "layers.hpp"
#include "layout.hpp"
+#include "policy.hpp"
#include "result.hpp"
#include "wayland.hpp"
#include "result.hpp"
#include "wayland.hpp"
@@
-46,9
+47,6
@@
namespace wm {
using std::experimental::optional;
struct id_allocator {
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
unsigned next = 1;
// Surfaces that where requested but not yet created
@@
-115,7
+113,6
@@
struct App {
struct config config;
// track current layouts separately
struct config config;
// track current layouts separately
- std::map<int, struct LayoutState> layouts;
layer_map layers;
// ID allocation and proxy methods for lookup
layer_map layers;
// ID allocation and proxy methods for lookup
@@
-126,6
+123,8
@@
struct App {
std::vector<int> pending_end_draw;
std::vector<int> pending_end_draw;
+ Policy policy;
+
explicit App(wl::display *d);
~App();
explicit App(wl::display *d);
~App();
@@
-139,8
+138,6
@@
struct App {
int dispatch_events();
int dispatch_pending_events();
int dispatch_events();
int dispatch_pending_events();
- void surface_set_layout_full(uint32_t surface_id);
- void surface_set_layout_split(uint32_t surface_id, uint32_t sub_surface_id);
void set_pending_events();
result<int> api_request_surface(char const *drawing_name);
void set_pending_events();
result<int> api_request_surface(char const *drawing_name);
@@
-164,6
+161,9
@@
private:
int init_layers();
int init_layers();
+ void surface_set_layout(int surface_id, optional<int> sub_surface_id = nullopt);
+ void layout_commit();
+
// TMC WM Events to clients
void emit_activated(char const *label);
void emit_deactivated(char const *label);
// TMC WM Events to clients
void emit_activated(char const *label);
void emit_deactivated(char const *label);
@@
-175,8
+175,12
@@
private:
void activate(int id);
void deactivate(int id);
void activate(int id);
void deactivate(int id);
+ void deactivate_main_surface();
bool can_split(struct LayoutState const &state, int new_id);
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
};
} // namespace wm