events should have a ptr to windows
[winnie] / src / event.cc
1 #include <errno.h>
2 #include <unistd.h>
3 #include <sys/select.h>
4 #include "event.h"
5 #include "wm.h"
6 #include "keyboard.h"
7 #include "mouse.h"
8
9 void process_events()
10 {
11         int keyb_fd = get_keyboard_fd();
12         int mouse_fd = get_mouse_fd();
13
14         for(;;) {
15                 fd_set read_set;
16
17                 FD_ZERO(&read_set);
18                 FD_SET(keyb_fd, &read_set);
19                 FD_SET(mouse_fd, &read_set);
20
21                 int maxfd = keyb_fd > mouse_fd ? keyb_fd : mouse_fd;
22
23                 while(select(maxfd + 1, &read_set, 0, 0, 0) == -1 && errno == EINTR);
24
25                 if(FD_ISSET(keyb_fd, &read_set)) {
26                         process_keyboard_event();
27                 }
28                 if(FD_ISSET(mouse_fd, &read_set)) {
29                         process_mouse_event();
30                 }
31
32                 wm->process_windows();
33         }
34 }