Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""

This reverts commit 32a572cecf.

This reimplements the criteria overhaul in preparation for fixing a
known bug.
This commit is contained in:
Ryan Dwyer 2018-05-13 08:16:36 +10:00
parent 270c1ee7e5
commit 1e9aaa54a8
10 changed files with 615 additions and 542 deletions

View file

@ -21,11 +21,15 @@ enum sway_view_prop {
VIEW_PROP_APP_ID,
VIEW_PROP_CLASS,
VIEW_PROP_INSTANCE,
VIEW_PROP_WINDOW_TYPE,
VIEW_PROP_WINDOW_ROLE,
VIEW_PROP_X11_WINDOW_ID,
};
struct sway_view_impl {
const char *(*get_prop)(struct sway_view *view,
const char *(*get_string_prop)(struct sway_view *view,
enum sway_view_prop prop);
uint32_t (*get_int_prop)(struct sway_view *view, enum sway_view_prop prop);
void (*configure)(struct sway_view *view, double ox, double oy, int width,
int height);
void (*set_activated)(struct sway_view *view, bool activated);
@ -53,6 +57,8 @@ struct sway_view {
enum sway_container_border border;
int border_thickness;
list_t *executed_criteria;
union {
struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6;
struct wlr_xdg_surface *wlr_xdg_surface;
@ -109,6 +115,9 @@ struct sway_xwayland_view {
struct wl_listener request_maximize;
struct wl_listener request_configure;
struct wl_listener request_fullscreen;
struct wl_listener set_title;
struct wl_listener set_class;
struct wl_listener set_window_type;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
@ -191,6 +200,10 @@ const char *view_get_class(struct sway_view *view);
const char *view_get_instance(struct sway_view *view);
uint32_t view_get_x11_window_id(struct sway_view *view);
uint32_t view_get_window_type(struct sway_view *view);
const char *view_get_type(struct sway_view *view);
void view_configure(struct sway_view *view, double ox, double oy, int width,
@ -243,4 +256,10 @@ void view_child_destroy(struct sway_view_child *child);
*/
void view_update_title(struct sway_view *view, bool force);
/**
* Run any criteria that match the view and haven't been run on this view
* before.
*/
void view_execute_criteria(struct sway_view *view);
#endif