mirror of
https://github.com/wizbright/waybox.git
synced 2025-10-29 05:40:20 -04:00
react to wlroots changes
This commit is contained in:
parent
6dc905d758
commit
fd0c5b04d3
5 changed files with 47 additions and 2 deletions
|
|
@ -28,7 +28,7 @@ inc_dir = include_directories('include')
|
|||
libevdev = dependency('libevdev')
|
||||
libinput = dependency('libinput', version: '>=1.21.0')
|
||||
libxml2 = dependency('libxml-2.0')
|
||||
wlroots = dependency('wlroots', version: '>=0.16.2')
|
||||
wlroots = dependency('wlroots', version: '>=0.16.0')
|
||||
wayland_server = dependency('wayland-server', version: '>=1.15')
|
||||
wayland_protos = dependency('wayland-protocols', version: '>=1.27')
|
||||
xkbcommon = dependency('xkbcommon')
|
||||
|
|
|
|||
|
|
@ -82,8 +82,13 @@ static void process_cursor_motion(struct wb_server *server, uint32_t time) {
|
|||
/* If there's no view under the cursor, set the cursor image to a
|
||||
* default. This is what makes the cursor image appear when you move it
|
||||
* around the screen, not over any views. */
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
wlr_cursor_set_xcursor(
|
||||
server->cursor->cursor, server->cursor->xcursor_manager, "default");
|
||||
#else
|
||||
wlr_xcursor_manager_set_cursor_image(
|
||||
server->cursor->xcursor_manager, "default", server->cursor->cursor);
|
||||
server->cursor->xcursor_manager, "left_ptr", server->cursor->cursor);
|
||||
#endif
|
||||
}
|
||||
if (surface) {
|
||||
/*
|
||||
|
|
@ -198,7 +203,9 @@ struct wb_cursor *wb_cursor_create(struct wb_server *server) {
|
|||
const char *xcursor_size = getenv("XCURSOR_SIZE");
|
||||
cursor->xcursor_manager = wlr_xcursor_manager_create(getenv("XCURSOR_THEME"),
|
||||
xcursor_size ? strtoul(xcursor_size, (char **) NULL, 10) : 24);
|
||||
#if !WLR_CHECK_VERSION(0, 17, 0)
|
||||
wlr_xcursor_manager_load(cursor->xcursor_manager, 1);
|
||||
#endif
|
||||
|
||||
cursor->cursor_motion.notify = handle_cursor_motion;
|
||||
wl_signal_add(&cursor->cursor->events.motion, &cursor->cursor_motion);
|
||||
|
|
|
|||
|
|
@ -121,8 +121,13 @@ static void handle_surface_commit(struct wl_listener *listener, void *data) {
|
|||
wlr_scene_node_reparent(&surface->scene->tree->node, output_layer);
|
||||
}
|
||||
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
if (committed || layer_surface->surface->mapped != surface->mapped) {
|
||||
surface->mapped = layer_surface->surface->mapped;
|
||||
#else
|
||||
if (committed || layer_surface->mapped != surface->mapped) {
|
||||
surface->mapped = layer_surface->mapped;
|
||||
#endif
|
||||
arrange_layers(surface->output);
|
||||
|
||||
struct timespec now;
|
||||
|
|
@ -343,9 +348,17 @@ void handle_layer_shell_surface(struct wl_listener *listener, void *data) {
|
|||
wl_signal_add(&layer_surface->surface->events.commit,
|
||||
&surface->surface_commit);
|
||||
surface->map.notify = handle_map;
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
wl_signal_add(&layer_surface->surface->events.map, &surface->map);
|
||||
#else
|
||||
wl_signal_add(&layer_surface->events.map, &surface->map);
|
||||
#endif
|
||||
surface->unmap.notify = handle_unmap;
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
wl_signal_add(&layer_surface->surface->events.unmap, &surface->unmap);
|
||||
#else
|
||||
wl_signal_add(&layer_surface->events.unmap, &surface->unmap);
|
||||
#endif
|
||||
surface->destroy.notify = handle_destroy;
|
||||
wl_signal_add(&layer_surface->events.destroy, &surface->destroy);
|
||||
surface->new_popup.notify = handle_new_popup;
|
||||
|
|
|
|||
|
|
@ -66,6 +66,22 @@ void new_output_notify(struct wl_listener *listener, void *data) {
|
|||
* and our renderer */
|
||||
wlr_output_init_render(wlr_output, server->allocator, server->renderer);
|
||||
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
struct wlr_output_mode *mode = wlr_output_preferred_mode(wlr_output);
|
||||
if (mode != NULL) {
|
||||
struct wlr_output_state state = {0};
|
||||
wlr_output_state_set_mode(&state, mode);
|
||||
wlr_output_state_set_enabled(&state, true);
|
||||
|
||||
if (!wlr_output_commit_state(wlr_output, &state)) {
|
||||
wlr_output_state_finish(&state);
|
||||
wlr_log_errno(WLR_ERROR, "%s", _("Couldn't commit state to output"));
|
||||
return;
|
||||
}
|
||||
|
||||
wlr_output_state_finish(&state);
|
||||
}
|
||||
#else
|
||||
if (!wl_list_empty(&wlr_output->modes)) {
|
||||
struct wlr_output_mode *mode = wlr_output_preferred_mode(wlr_output);
|
||||
wlr_output_set_mode(wlr_output, mode);
|
||||
|
|
@ -76,6 +92,7 @@ void new_output_notify(struct wl_listener *listener, void *data) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
struct wb_output *output = calloc(1, sizeof(struct wb_output));
|
||||
output->server = server;
|
||||
|
|
|
|||
|
|
@ -370,9 +370,17 @@ static void handle_new_xdg_surface(struct wl_listener *listener, void *data) {
|
|||
|
||||
/* Listen to the various events it can emit */
|
||||
view->map.notify = xdg_toplevel_map;
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
wl_signal_add(&xdg_surface->surface->events.map, &view->map);
|
||||
#else
|
||||
wl_signal_add(&xdg_surface->events.map, &view->map);
|
||||
#endif
|
||||
view->unmap.notify = xdg_toplevel_unmap;
|
||||
#if WLR_CHECK_VERSION(0, 17, 0)
|
||||
wl_signal_add(&xdg_surface->surface->events.unmap, &view->unmap);
|
||||
#else
|
||||
wl_signal_add(&xdg_surface->events.unmap, &view->unmap);
|
||||
#endif
|
||||
view->destroy.notify = xdg_toplevel_destroy;
|
||||
wl_signal_add(&xdg_surface->events.destroy, &view->destroy);
|
||||
view->new_popup.notify = handle_new_popup;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue