16 int wm_handle_key(win_t *win, Key_t key, mod_t mod, ptr_t ptr)
19 printf("wm_handle_key: %p - %x\n", win, key);
26 return sys_focus(win), 1;
28 return sys_raise(win), 1;
29 if ((key == key_f1 && mod.MODKEY) ||
30 (key_mouse0 <= key && key <= key_mouse7))
34 if (key_mouse0 <= key && key <= key_mouse7 &&
35 mod.up && mode != none)
36 return mode = none, 1;
37 else if (key == key_mouse1 && mod.MODKEY)
38 return mode = move, 1;
39 else if (key == key_mouse3 && mod.MODKEY)
40 return mode = resize, 1;
45 int wm_handle_ptr(win_t *win, ptr_t ptr)
47 printf("wm_handle_ptr: %p - %d,%d %d,%d (%d) -- \n",
48 win, ptr.x, ptr.y, ptr.rx, ptr.ry, mode);
49 int dx = ptr.rx - kptr.rx;
50 int dy = ptr.ry - kptr.ry;
51 //if (win) sys_focus(win);
53 sys_move(kwin, kwin->x+dx, kwin->y+dy, kwin->w, kwin->h);
54 else if (mode == resize)
55 sys_move(kwin, kwin->x, kwin->y, kwin->w+dx, kwin->h+dy);
59 void wm_init(win_t *root)
61 sys_watch(root, key_f1, MOD(.MODKEY=1));
62 sys_watch(root, key_mouse1, MOD(.MODKEY=1));
63 sys_watch(root, key_mouse3, MOD(.MODKEY=1));