]> Pileus Git - wmpus/blobdiff - sys.h
Only grab mouse click on unfocused windows
[wmpus] / sys.h
diff --git a/sys.h b/sys.h
index a30255994e04d2c3a0004d7d3270129e26a11ea2..d70c893dab6c2beefe471baefc8f436cbea7cd42 100644 (file)
--- a/sys.h
+++ b/sys.h
@@ -28,28 +28,39 @@ typedef enum {
        key_f1, key_f2,  key_f3,  key_f4,
        key_f5, key_f6,  key_f7,  key_f8,
        key_f9, key_f10, key_f11, key_f12,
+       key_alt, key_ctrl, key_shift, key_win,
+       key_enter, key_leave, key_focus, key_unfocus,
 } Key_t;
 
 typedef struct {
-       int up    : 1;
-       int alt   : 1;
-       int ctrl  : 1;
-       int shift : 1;
-       int win   : 1;
+       unsigned char alt   : 1;
+       unsigned char ctrl  : 1;
+       unsigned char shift : 1;
+       unsigned char win   : 1;
+       unsigned char up    : 1;
+       unsigned char spare : 3;
 } mod_t;
 #define MOD(...) ((mod_t){__VA_ARGS__})
+#define mod2int(mod) (*((unsigned short*)&(mod)))
 
 typedef struct {
        int  x,  y;
        int rx, ry;
 } ptr_t;
+#define PTR(...) ((ptr_t){__VA_ARGS__})
 
 void sys_watch(win_t *win, Key_t key, mod_t mod);
 
+void sys_unwatch(win_t *win, Key_t key, mod_t mod);
+
 void sys_move(win_t *win, int x, int y, int w, int h);
 
 void sys_raise(win_t *win);
 
+void sys_focus(win_t *win);
+
+void sys_foreach(win_t *win);
+
 win_t *sys_init(void);
 
 void sys_run(win_t *root);