diff options
author | Tony Crisci <tony@dubstepdish.com> | 2017-10-27 15:22:00 -0400 |
---|---|---|
committer | Tony Crisci <tony@dubstepdish.com> | 2017-10-27 15:22:00 -0400 |
commit | c555a66ddafe3ea06f3abbf38194a8589733082d (patch) | |
tree | 2298ce1eb691b3d9d5a8ae69cb77894333f943c1 /rootston/xcursor.c | |
parent | 325def38418f5caefd6dc23749dd2ca6bae0a36c (diff) | |
parent | b97160238fa5b61fef81316102559c8c3e137cd2 (diff) |
Merge branch 'master' into feature/xwm-rewrite
Diffstat (limited to 'rootston/xcursor.c')
-rw-r--r-- | rootston/xcursor.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/rootston/xcursor.c b/rootston/xcursor.c new file mode 100644 index 00000000..43cbfc51 --- /dev/null +++ b/rootston/xcursor.c @@ -0,0 +1,42 @@ +#include <wlr/types/wlr_cursor.h> +#include "rootston/input.h" + +struct wlr_xcursor *get_default_xcursor(struct wlr_xcursor_theme *theme) { + return wlr_xcursor_theme_get_cursor(theme, "left_ptr"); +} + +struct wlr_xcursor *get_move_xcursor(struct wlr_xcursor_theme *theme) { + return wlr_xcursor_theme_get_cursor(theme, "grabbing"); +} + +static const char *get_resize_xcursor_name(uint32_t edges) { + if (edges & ROOTS_CURSOR_RESIZE_EDGE_TOP) { + if (edges & ROOTS_CURSOR_RESIZE_EDGE_RIGHT) { + return "ne-resize"; + } else if (edges & ROOTS_CURSOR_RESIZE_EDGE_LEFT) { + return "nw-resize"; + } + return "n-resize"; + } else if (edges & ROOTS_CURSOR_RESIZE_EDGE_BOTTOM) { + if (edges & ROOTS_CURSOR_RESIZE_EDGE_RIGHT) { + return "se-resize"; + } else if (edges & ROOTS_CURSOR_RESIZE_EDGE_LEFT) { + return "sw-resize"; + } + return "s-resize"; + } else if (edges & ROOTS_CURSOR_RESIZE_EDGE_RIGHT) { + return "e-resize"; + } else if (edges & ROOTS_CURSOR_RESIZE_EDGE_LEFT) { + return "w-resize"; + } + return "se-resize"; // fallback +} + +struct wlr_xcursor *get_resize_xcursor(struct wlr_xcursor_theme *theme, + uint32_t edges) { + return wlr_xcursor_theme_get_cursor(theme, get_resize_xcursor_name(edges)); +} + +struct wlr_xcursor *get_rotate_xcursor(struct wlr_xcursor_theme *theme) { + return wlr_xcursor_theme_get_cursor(theme, "grabbing"); +} |