xdg-shell: add map/unmap support

This commit is contained in:
emersion 2018-03-15 20:15:09 +01:00
parent 42cc575266
commit e607d0f7ee
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
4 changed files with 356 additions and 257 deletions

View file

@ -44,6 +44,8 @@ struct roots_xdg_surface {
struct wl_listener destroy;
struct wl_listener new_popup;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener request_move;
struct wl_listener request_resize;
struct wl_listener request_maximize;

View file

@ -62,19 +62,10 @@ enum wlr_xdg_surface_role {
};
struct wlr_xdg_toplevel_state {
bool maximized;
bool fullscreen;
bool resizing;
bool activated;
uint32_t width;
uint32_t height;
uint32_t max_width;
uint32_t max_height;
uint32_t min_width;
uint32_t min_height;
bool maximized, fullscreen, resizing, activated;
uint32_t width, height;
uint32_t max_width, max_height;
uint32_t min_width, min_height;
};
struct wlr_xdg_toplevel {
@ -90,7 +81,8 @@ struct wlr_xdg_toplevel {
struct wlr_xdg_surface_configure {
struct wl_list link; // wlr_xdg_surface::configure_list
uint32_t serial;
struct wlr_xdg_toplevel_state state;
struct wlr_xdg_toplevel_state *toplevel_state;
};
struct wlr_xdg_surface {
@ -101,14 +93,13 @@ struct wlr_xdg_surface {
enum wlr_xdg_surface_role role;
union {
struct wlr_xdg_toplevel *toplevel_state;
struct wlr_xdg_popup *popup_state;
struct wlr_xdg_toplevel *toplevel;
struct wlr_xdg_popup *popup;
};
struct wl_list popups; // wlr_xdg_popup::link
bool configured;
bool added;
bool added, configured, mapped;
uint32_t configure_serial;
struct wl_event_source *configure_idle;
uint32_t configure_next_serial;
@ -118,8 +109,8 @@ struct wlr_xdg_surface {
char *app_id;
bool has_next_geometry;
struct wlr_box *next_geometry;
struct wlr_box *geometry;
struct wlr_box next_geometry;
struct wlr_box geometry;
struct wl_listener surface_destroy_listener;
@ -127,6 +118,8 @@ struct wlr_xdg_surface {
struct wl_signal destroy;
struct wl_signal ping_timeout;
struct wl_signal new_popup;
struct wl_signal map;
struct wl_signal unmap;
struct wl_signal request_maximize;
struct wl_signal request_fullscreen;