commit 5c7e7e7a20ff5d0b323f10ae058996192623805d
parent 78e8dc3e66379c5b44a8b0f473ccac6ea16fb5cc
Author: Michael Forney <mforney@mforney.org>
Date: Sun, 20 Jul 2014 15:06:04 -0700
Merge branch 'nice-exit' of git://github.com/Jezze/swc
Diffstat:
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/example/wm.c b/example/wm.c
@@ -51,6 +51,7 @@ static const uint32_t border_color_normal = 0xff888888;
static struct screen * active_screen;
static struct window * focused_window;
+static struct wl_display * display;
static struct wl_event_loop * event_loop;
/* This is a basic grid arrange function that tries to give each window an
@@ -245,10 +246,16 @@ static void spawn(void * data, uint32_t time, uint32_t value, uint32_t state)
}
}
-int main(int argc, char * argv[])
+static void quit(void * data, uint32_t time, uint32_t value, uint32_t state)
{
- struct wl_display * display;
+ if (state != WL_KEYBOARD_KEY_STATE_PRESSED)
+ return;
+ wl_display_terminate(display);
+}
+
+int main(int argc, char * argv[])
+{
display = wl_display_create();
if (!display)
@@ -264,9 +271,12 @@ int main(int argc, char * argv[])
&spawn, terminal_command);
swc_add_binding(SWC_BINDING_KEY, SWC_MOD_LOGO, XKB_KEY_r,
&spawn, dmenu_command);
+ swc_add_binding(SWC_BINDING_KEY, SWC_MOD_LOGO, XKB_KEY_q,
+ &quit, NULL);
event_loop = wl_display_get_event_loop(display);
wl_display_run(display);
+ wl_display_destroy(display);
return EXIT_SUCCESS;
}