Merge branch 'master' into swaybar_tray_last

This commit is contained in:
lavoiecsh 2026-04-30 09:10:54 -04:00 committed by GitHub
commit 09e9055ce7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 10 deletions

View file

@ -59,7 +59,7 @@ static void transaction_destroy(struct sway_transaction *transaction) {
if (node->instruction == instruction) { if (node->instruction == instruction) {
node->instruction = NULL; node->instruction = NULL;
} }
if (node->destroying && node->ntxnrefs == 0) { if (node->destroying && node->ntxnrefs == 0 && !node->dirty) {
switch (node->type) { switch (node->type) {
case N_ROOT: case N_ROOT:
sway_assert(false, "Never reached"); sway_assert(false, "Never reached");

View file

@ -373,7 +373,7 @@ static void finalize_move(struct sway_seat *seat) {
enum sway_container_layout new_layout = edge == WLR_EDGE_TOP || enum sway_container_layout new_layout = edge == WLR_EDGE_TOP ||
edge == WLR_EDGE_BOTTOM ? L_VERT : L_HORIZ; edge == WLR_EDGE_BOTTOM ? L_VERT : L_HORIZ;
workspace_split(new_ws, new_layout); workspace_split(new_ws, new_layout);
workspace_insert_tiling(new_ws, con, after); workspace_insert_tiling(new_ws, con, after ? new_ws->tiling->length : 0);
} }
if (old_parent) { if (old_parent) {

View file

@ -126,7 +126,8 @@ static bool is_privileged(const struct wl_global *global) {
global == server.input->virtual_keyboard->global || global == server.input->virtual_keyboard->global ||
global == server.input->virtual_pointer->global || global == server.input->virtual_pointer->global ||
global == server.input->transient_seat_manager->global || global == server.input->transient_seat_manager->global ||
global == server.xdg_output_manager_v1->global; global == server.xdg_output_manager_v1->global ||
global == server.workspace_manager_v1->global;
} }
static bool filter_global(const struct wl_client *client, static bool filter_global(const struct wl_client *client,
@ -227,7 +228,7 @@ static void handle_renderer_lost(struct wl_listener *listener, void *data) {
} }
static void handle_new_foreign_toplevel_capture_request(struct wl_listener *listener, void *data) { static void handle_new_foreign_toplevel_capture_request(struct wl_listener *listener, void *data) {
struct wlr_ext_foreign_toplevel_image_capture_source_manager_v1_request *request = data; struct wlr_ext_foreign_toplevel_image_capture_source_manager_v1_request_event *request = data;
struct sway_view *view = request->toplevel_handle->data; struct sway_view *view = request->toplevel_handle->data;
if (view->image_capture_source == NULL) { if (view->image_capture_source == NULL) {
@ -295,11 +296,8 @@ bool server_init(struct sway_server *server) {
if (wlr_renderer_get_drm_fd(server->renderer) >= 0 && if (wlr_renderer_get_drm_fd(server->renderer) >= 0 &&
server->renderer->features.timeline && server->renderer->features.timeline &&
server->backend->features.timeline) { server->backend->features.timeline) {
if (!wlr_linux_drm_syncobj_manager_v1_create(server->wl_display, 1, wlr_linux_drm_syncobj_manager_v1_create(server->wl_display, 1,
wlr_renderer_get_drm_fd(server->renderer))) { wlr_renderer_get_drm_fd(server->renderer));
sway_log(SWAY_ERROR, "Failed to create linux-drm-syncobj v1");
return false;
}
} }
server->allocator = wlr_allocator_autocreate(server->backend, server->allocator = wlr_allocator_autocreate(server->backend,
@ -561,7 +559,7 @@ bool server_init(struct sway_server *server) {
return false; return false;
} }
server->new_foreign_toplevel_capture_request.notify = handle_new_foreign_toplevel_capture_request; server->new_foreign_toplevel_capture_request.notify = handle_new_foreign_toplevel_capture_request;
wl_signal_add(&server->ext_foreign_toplevel_image_capture_source_manager_v1->events.new_request, wl_signal_add(&server->ext_foreign_toplevel_image_capture_source_manager_v1->events.capture_request,
&server->new_foreign_toplevel_capture_request); &server->new_foreign_toplevel_capture_request);
server->tearing_control_v1 = server->tearing_control_v1 =