aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/wm/wm.h
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-10-04 07:18:56 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-10-04 07:18:56 -0700
commitd69354eedb0b25767293b7aac9ab32def01005f3 (patch)
tree3ca52c7cf1d22893a7878bb47c7587b889084f66 /sys/cmd/wm/wm.h
parent7e7fab861a7e5baae9182419f7f320af36ce1ec4 (diff)
checkin(wm)
Diffstat (limited to 'sys/cmd/wm/wm.h')
-rw-r--r--sys/cmd/wm/wm.h26
1 files changed, 21 insertions, 5 deletions
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