diff --git a/meson.build b/meson.build index 646f694c2..07a6bccff 100644 --- a/meson.build +++ b/meson.build @@ -38,14 +38,14 @@ if is_freebsd endif # Execute the wlroots subproject, if any -wlroots_version = ['>=0.19.0', '<0.20.0'] +wlroots_version = ['>=0.20.0', '<0.21.0'] subproject( 'wlroots', default_options: ['examples=false'], required: false, version: wlroots_version, ) -wlroots = dependency('wlroots-0.19', version: wlroots_version, fallback: 'wlroots') +wlroots = dependency('wlroots-0.20', version: wlroots_version, fallback: 'wlroots') wlroots_features = { 'xwayland': false, 'libinput_backend': false, diff --git a/sway/commands/move.c b/sway/commands/move.c index 8891514ce..90e8585b4 100644 --- a/sway/commands/move.c +++ b/sway/commands/move.c @@ -222,6 +222,7 @@ static void container_move_to_workspace(struct sway_container *container, container_detach(container); if (workspace_is_empty(workspace) && container->pending.children) { workspace_unwrap_children(workspace, container); + container_reap_empty(container); } else { container->pending.width = container->pending.height = 0; container->width_fraction = container->height_fraction = 0; diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 781e0008c..f8bc64b57 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c @@ -343,7 +343,7 @@ static void arrange_children(enum sway_container_layout layout, list_t *children wlr_scene_node_set_position(&child->scene_tree->node, 0, title_height); wlr_scene_node_reparent(&child->scene_tree->node, content); - int net_height = height - title_bar_height; + int net_height = height - title_height; if (activated && width > 0 && net_height > 0) { arrange_container(child, width, net_height, title_bar_height == 0, 0); } else { @@ -534,6 +534,7 @@ static void arrange_workspace_floating(struct sway_workspace *ws) { wlr_scene_node_set_position(&floater->scene_tree->node, floater->current.x, floater->current.y); wlr_scene_node_set_enabled(&floater->scene_tree->node, true); + wlr_scene_node_set_enabled(&floater->border.tree->node, true); arrange_container(floater, floater->current.width, floater->current.height, true, ws->gaps_inner); diff --git a/sway/input/seatop_down.c b/sway/input/seatop_down.c index 340e334bf..f64e5a4f2 100644 --- a/sway/input/seatop_down.c +++ b/sway/input/seatop_down.c @@ -100,6 +100,7 @@ static void handle_touch_down(struct sway_seat *seat, if (focused_node) { seat_set_focus(seat, focused_node); + transaction_commit_dirty(); } } diff --git a/sway/input/text_input.c b/sway/input/text_input.c index c84fac8f6..0eb76eb16 100644 --- a/sway/input/text_input.c +++ b/sway/input/text_input.c @@ -632,7 +632,7 @@ void sway_input_method_relay_init(struct sway_seat *seat, wl_list_init(&relay->input_popups); relay->text_input_new.notify = relay_handle_text_input; - wl_signal_add(&server.text_input->events.text_input, + wl_signal_add(&server.text_input->events.new_text_input, &relay->text_input_new); relay->text_input_manager_destroy.notify = relay_handle_text_input_manager_destroy; wl_signal_add(&server.text_input->events.destroy, diff --git a/sway/tree/root.c b/sway/tree/root.c index 19d072b5c..33c29d381 100644 --- a/sway/tree/root.c +++ b/sway/tree/root.c @@ -199,6 +199,8 @@ void root_scratchpad_show(struct sway_container *con) { if (old_ws) { workspace_consider_destroy(old_ws); } + + container_raise_floating(con); } static void disable_fullscreen(struct sway_container *con, void *data) {