summaryrefslogtreecommitdiffstats
path: root/terminal.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-12-30 11:03:33 -0500
committerKristian Høgsberg <krh@redhat.com>2008-12-30 11:03:33 -0500
commit94448c0ad7fc452aa363f74021b7c3d87f20a462 (patch)
tree1ecdbaae483f90d3d7a9aeaaed275c006744903e /terminal.c
parente787bc60e50da65204e53b7587fca05d011e38ba (diff)
downloadwayland-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.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/terminal.c b/terminal.c
index 1010836..61d5697 100644
--- a/terminal.c
+++ b/terminal.c
@@ -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);