From d69354eedb0b25767293b7aac9ab32def01005f3 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Mon, 4 Oct 2021 07:18:56 -0700 Subject: checkin(wm) --- sys/cmd/wm/wm.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'sys/cmd/wm/wm.h') diff --git a/sys/cmd/wm/wm.h b/sys/cmd/wm/wm.h index 1e9e41e..cd51e29 100644 --- a/sys/cmd/wm/wm.h +++ b/sys/cmd/wm/wm.h @@ -41,7 +41,8 @@ // ----------------------------------------------------------------------- // macros -#define ROUND(x) ((int)((x)+0.5)) +#define ROUND(x) ((int)((x)+0.5)) +#define VISIBLE_ON(C,M) ((C)->monitor == (M) && ((C)->tags & (M)->tag.set[(M)->tag.selected])) // ----------------------------------------------------------------------- // types @@ -62,6 +63,7 @@ typedef struct Layout Layout; typedef struct Monitor Monitor; typedef struct Server Server; +typedef struct Rule Rule; typedef struct MonitorRule MonitorRule; struct Rectangle @@ -109,6 +111,7 @@ struct Client { struct wl_list link; struct wl_list stack; + struct wl_list focus; struct wlr_xdg_surface *xdg; @@ -123,7 +126,7 @@ struct Client struct wl_listener request_fullscreen; } event; - struct wlr_box geo, oldgeo; + struct wlr_box geometry, oldgeometry; Monitor *monitor; @@ -155,7 +158,7 @@ struct Monitor struct wlr_box geometry; struct wlr_box window; - Layout *layout[2]; + Layout *layout, *layouts[2]; struct { uint set[2]; uint selected; @@ -184,7 +187,7 @@ struct Rule char *id; char *title; uint tags; - int floating; + int isfloating; int monitor; }; @@ -202,6 +205,7 @@ struct Server struct { struct wl_list list; struct wl_list stack; + struct wl_list focus; } client; Client *selected; @@ -216,6 +220,7 @@ struct Server struct wlr_output_layout *layout; struct wl_list list; struct wlr_box geometry; + Monitor *selected; } monitor; struct { @@ -235,6 +240,8 @@ struct Server struct wl_listener make_xdg_surface; struct wl_listener make_layer_surface; + struct wl_listener layout_change; + struct wl_listener cursor_move; struct wl_listener cursor_move_abs; struct wl_listener cursor_button; @@ -256,6 +263,7 @@ void scale_box(struct wlr_box *, float); /* output.c */ void make_monitor(struct wl_listener *, void *); +void layout_change(struct wl_listener *, void *); /* xdg.c */ void make_xdg_surface(struct wl_listener *, void *); @@ -273,12 +281,20 @@ void request_cursor(struct wl_listener *, void *); void request_set_selection(struct wl_listener *, void *); /* client.c */ -void focus(Client *, struct wlr_surface *); +void focus(Client *, struct wlr_surface *, int lift); void resize(Client *, int x, int y, int w, int h, int interact); Client* client_at(double, double, struct wlr_surface **, double *, double *); int client_has(Client *, double, double, struct wlr_surface **, double *, double *); + +/* XXX: deprecate */ void setinteractive(Client *client, int mode, uint32 edges); +/* monitor.c */ +void tile(Monitor *); +void arrange(Monitor *); +Client * focused_client(Monitor *); + + #define CONFIG(a,b,...) extern a cfg·##b #include "config.h" #undef CONFIG -- cgit v1.2.1