]> Pileus Git - wmpus/blobdiff - wm-wmii.c
Playing with focus
[wmpus] / wm-wmii.c
index 63eec36008b520e4d52f63d3d02ea2ffa747e5cd..7a5c5b0c26b17f946a9aa789f0379aeba8f6da1b 100644 (file)
--- a/wm-wmii.c
+++ b/wm-wmii.c
@@ -3,6 +3,8 @@
 #include "sys.h"
 #include "wm.h"
 
+#define MODKEY ctrl
+
 typedef enum {
        none, move, resize
 } Mode_t;
@@ -13,15 +15,18 @@ Mode_t mode;
 
 int wm_handle_key(win_t *win, Key_t key, mod_t mod, ptr_t ptr)
 {
-       if (!win)
-               return;
-       printf("wm_handle_key: %p - %x %hhx\n",
-                       win, key, mod2int(mod));
+       if (!win) return;
+       printf("wm_handle_key: %p - %x\n", win, key);
+
        kptr = ptr;
        kwin = win;
 
        /* Raise */
-       if ((key == key_f1 && mod.ctrl) ||
+       if (key == key_f2)
+               return sys_focus(win), 1;
+       if (key == key_f4)
+               return sys_raise(win), 1;
+       if ((key == key_f1 && mod.MODKEY) ||
                        (key_mouse0 <= key && key <= key_mouse7))
                sys_raise(win);
 
@@ -29,9 +34,9 @@ int wm_handle_key(win_t *win, Key_t key, mod_t mod, ptr_t ptr)
        if (key_mouse0 <= key && key <= key_mouse7 &&
                        mod.up && mode != none)
                return mode = none, 1;
-       else if (key == key_mouse1 && mod.ctrl)
+       else if (key == key_mouse1 && mod.MODKEY)
                return mode = move, 1;
-       else if (key == key_mouse3 && mod.ctrl)
+       else if (key == key_mouse3 && mod.MODKEY)
                return mode = resize, 1;
 
        return 0;
@@ -43,6 +48,7 @@ int wm_handle_ptr(win_t *win, ptr_t ptr)
                        win, ptr.x, ptr.y, ptr.rx, ptr.ry, mode);
        int dx = ptr.rx - kptr.rx;
        int dy = ptr.ry - kptr.ry;
+       //if (win) sys_focus(win);
        if (mode == move)
                sys_move(kwin, kwin->x+dx, kwin->y+dy, kwin->w, kwin->h);
        else if (mode == resize)
@@ -52,7 +58,7 @@ int wm_handle_ptr(win_t *win, ptr_t ptr)
 
 void wm_init(win_t *root)
 {
-       sys_watch(root, key_f1,     MOD(.ctrl=1));
-       sys_watch(root, key_mouse1, MOD(.ctrl=1));
-       sys_watch(root, key_mouse3, MOD(.ctrl=1));
+       sys_watch(root, key_f1,     MOD(.MODKEY=1));
+       sys_watch(root, key_mouse1, MOD(.MODKEY=1));
+       sys_watch(root, key_mouse3, MOD(.MODKEY=1));
 }