diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-12-30 11:03:33 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2008-12-30 11:03:33 -0500 |
commit | 94448c0ad7fc452aa363f74021b7c3d87f20a462 (patch) | |
tree | 1ecdbaae483f90d3d7a9aeaaed275c006744903e /terminal.c | |
parent | e787bc60e50da65204e53b7587fca05d011e38ba (diff) | |
download | wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.tar.gz wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.tar.xz wayland-94448c0ad7fc452aa363f74021b7c3d87f20a462.zip |
Add listener interfaces for output and input_device objects.
Diffstat (limited to 'terminal.c')
-rw-r--r-- | terminal.c | 24 |
1 files changed, 21 insertions, 3 deletions
@@ -397,12 +397,15 @@ resize_handler(struct window *window, void *data) } static void -acknowledge_handler(struct window *window, uint32_t key, void *data) +handle_acknowledge(void *data, + struct wl_compositor *compositor, + uint32_t key, uint32_t frame) { struct terminal *terminal = data; terminal->redraw_scheduled = 0; - buffer_destroy(terminal->buffer, terminal->fd); + if (key == 0) + buffer_destroy(terminal->buffer, terminal->fd); if (terminal->redraw_pending) { terminal->redraw_pending = 0; @@ -410,6 +413,18 @@ acknowledge_handler(struct window *window, uint32_t key, void *data) } } +static void +handle_frame(void *data, + struct wl_compositor *compositor, + uint32_t frame, uint32_t timestamp) +{ +} + +static const struct wl_compositor_listener compositor_listener = { + handle_acknowledge, + handle_frame, +}; + struct key { int code[4]; } evdev_keymap[] = { @@ -549,7 +564,10 @@ terminal_create(struct wl_display *display, int fd, int fullscreen) terminal->compositor = wl_display_get_compositor(display); window_set_fullscreen(terminal->window, terminal->fullscreen); window_set_resize_handler(terminal->window, resize_handler, terminal); - window_set_acknowledge_handler(terminal->window, acknowledge_handler, terminal); + + wl_compositor_add_listener(terminal->compositor, + &compositor_listener, terminal); + window_set_key_handler(terminal->window, key_handler, terminal); terminal_draw(terminal); |