dwl

My patch set and modifications to dwl
git clone git://git.ethandl.dev/dwl
Log | Files | Refs | README | LICENSE

commit cfe78159033968d80a83b7f879f8281267cc2751
parent 7803022d331c87a4d0ec827af3735c0f8b206676
Author: Devin J. Pohly <djpohly@gmail.com>
Date:   Thu, 24 Dec 2020 21:37:48 -0500

Merge pull request #32 from alex-courtis/24-xwayland-cursor

#24 ensure that xwayland cursor defaults to left_ptr
Diffstat:
Mdwl.c | 18++++++++++++++++++
1 file changed, 18 insertions(+), 0 deletions(-)

diff --git a/dwl.c b/dwl.c @@ -305,6 +305,10 @@ static struct wlr_xdg_decoration_manager_v1 *xdeco_mgr; static struct wlr_cursor *cursor; static struct wlr_xcursor_manager *cursor_mgr; +#ifdef XWAYLAND +static struct wlr_xcursor *xcursor; +static struct wlr_xcursor_manager *xcursor_mgr; +#endif static struct wlr_seat *seat; static struct wl_list keyboards; @@ -2049,6 +2053,20 @@ setup(void) wl_signal_add(&xwayland->events.ready, &xwayland_ready); wl_signal_add(&xwayland->events.new_surface, &new_xwayland_surface); + /* + * Create the XWayland cursor manager at scale 1, setting its default + * pointer to match the rest of dwl. + */ + xcursor_mgr = wlr_xcursor_manager_create(NULL, 24); + wlr_xcursor_manager_load(xcursor_mgr, 1); + xcursor = wlr_xcursor_manager_get_xcursor(xcursor_mgr, "left_ptr", 1); + if (xcursor) { + wlr_xwayland_set_cursor(xwayland, + xcursor->images[0]->buffer, xcursor->images[0]->width * 4, + xcursor->images[0]->width, xcursor->images[0]->height, + xcursor->images[0]->hotspot_x, xcursor->images[0]->hotspot_y); + } + setenv("DISPLAY", xwayland->display_name, true); } else { fprintf(stderr, "failed to setup XWayland X server, continuing without it\n");