Reordered function definitions
This commit is contained in:
parent
2f4399d530
commit
544fd83718
44
events.c
44
events.c
|
@ -24,16 +24,25 @@
|
||||||
#include "events.h"
|
#include "events.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
|
void on_keypress(app_t*, XEvent*);
|
||||||
|
void on_configurenotify(app_t*, XEvent*);
|
||||||
|
void on_expose(app_t*, XEvent*);
|
||||||
|
|
||||||
extern Display *dpy;
|
extern Display *dpy;
|
||||||
|
|
||||||
void on_expose(app_t *app, XEvent *ev) {
|
static void (*handler[LASTEvent])(app_t*, XEvent*) = {
|
||||||
}
|
[Expose] = on_expose,
|
||||||
|
[ConfigureNotify] = on_configurenotify,
|
||||||
|
[KeyPress] = on_keypress
|
||||||
|
};
|
||||||
|
|
||||||
void on_configurenotify(app_t *app, XEvent *ev) {
|
void event_loop(app_t *app) {
|
||||||
if (!app || !ev)
|
XEvent ev;
|
||||||
return;
|
|
||||||
|
while (!XNextEvent(dpy, &ev)) {
|
||||||
win_configure(&app->win, &ev->xconfigure);
|
if (handler[ev.type])
|
||||||
|
handler[ev.type](app, &ev);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_keypress(app_t *app, XEvent *ev) {
|
void on_keypress(app_t *app, XEvent *ev) {
|
||||||
|
@ -56,17 +65,12 @@ void on_keypress(app_t *app, XEvent *ev) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (*handler[LASTEvent])(app_t*, XEvent*) = {
|
void on_configurenotify(app_t *app, XEvent *ev) {
|
||||||
[Expose] = on_expose,
|
if (!app || !ev)
|
||||||
[ConfigureNotify] = on_configurenotify,
|
return;
|
||||||
[KeyPress] = on_keypress
|
|
||||||
};
|
win_configure(&app->win, &ev->xconfigure);
|
||||||
|
}
|
||||||
void event_loop(app_t *app) {
|
|
||||||
XEvent ev;
|
void on_expose(app_t *app, XEvent *ev) {
|
||||||
|
|
||||||
while (!XNextEvent(dpy, &ev)) {
|
|
||||||
if (handler[ev.type])
|
|
||||||
handler[ev.type](app, &ev);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
14
main.c
14
main.c
|
@ -23,13 +23,6 @@
|
||||||
|
|
||||||
app_t app;
|
app_t app;
|
||||||
|
|
||||||
void cleanup() {
|
|
||||||
static int in = 0;
|
|
||||||
|
|
||||||
if (!in++)
|
|
||||||
app_quit(&app);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
// TODO: parse cmd line arguments properly
|
// TODO: parse cmd line arguments properly
|
||||||
|
@ -42,3 +35,10 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cleanup() {
|
||||||
|
static int in = 0;
|
||||||
|
|
||||||
|
if (!in++)
|
||||||
|
app_quit(&app);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue