diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-07-06 08:45:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-06 08:45:05 -0400 |
commit | 378149b59c8d2a6d2b0bab7f2bb507dbac990734 (patch) | |
tree | d7a5edd481a0b8961eee20d3008b1fbf6ba51ee1 /include/client/window.h | |
parent | 840b0c1bcde11631539bfe538d4897162e4b5d37 (diff) | |
parent | b9d8cbabdd42b8b65852fac5d8d8b01bbdabb280 (diff) |
Merge pull request #739 from deklov/swaybar-pointer-01
Enable windows to register to get notified of pointer button events
Diffstat (limited to 'include/client/window.h')
-rw-r--r-- | include/client/window.h | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/include/client/window.h b/include/client/window.h index e48ec4f3..7be4fff3 100644 --- a/include/client/window.h +++ b/include/client/window.h @@ -9,33 +9,43 @@ #include "list.h" #include "client/registry.h" +struct window; + struct buffer { - struct wl_buffer *buffer; - cairo_surface_t *surface; - cairo_t *cairo; - PangoContext *pango; - uint32_t width, height; - bool busy; + struct wl_buffer *buffer; + cairo_surface_t *surface; + cairo_t *cairo; + PangoContext *pango; + uint32_t width, height; + bool busy; }; struct cursor { - struct wl_surface *surface; - struct wl_cursor_theme *cursor_theme; - struct wl_cursor *cursor; - struct wl_poitner *pointer; + struct wl_surface *surface; + struct wl_cursor_theme *cursor_theme; + struct wl_cursor *cursor; + struct wl_poitner *pointer; +}; + +struct pointer_input { + wl_fixed_t last_x; + wl_fixed_t last_y; + + void (*notify)(struct window *window, wl_fixed_t x, wl_fixed_t y, uint32_t button); }; struct window { - struct registry *registry; - struct buffer buffers[2]; - struct buffer *buffer; - struct wl_surface *surface; - struct wl_shell_surface *shell_surface; - struct wl_callback *frame_cb; - struct cursor cursor; - uint32_t width, height; - char *font; - cairo_t *cairo; + struct registry *registry; + struct buffer buffers[2]; + struct buffer *buffer; + struct wl_surface *surface; + struct wl_shell_surface *shell_surface; + struct wl_callback *frame_cb; + struct cursor cursor; + uint32_t width, height; + char *font; + cairo_t *cairo; + struct pointer_input pointer_input; }; struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, bool shell_surface); |