aboutsummaryrefslogtreecommitdiff
path: root/include/client/window.h
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2016-07-06 08:45:05 -0400
committerGitHub <noreply@github.com>2016-07-06 08:45:05 -0400
commit378149b59c8d2a6d2b0bab7f2bb507dbac990734 (patch)
treed7a5edd481a0b8961eee20d3008b1fbf6ba51ee1 /include/client/window.h
parent840b0c1bcde11631539bfe538d4897162e4b5d37 (diff)
parentb9d8cbabdd42b8b65852fac5d8d8b01bbdabb280 (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.h50
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);