From 892446a0b6eba9d14cdf7462c86565a7a60d12ae Mon Sep 17 00:00:00 2001 From: Rouven Czerwinski Date: Sat, 13 Oct 2018 21:01:02 +0200 Subject: view: move arrange_workspace into view_map For mouse_warping cursor to correctly work on newly spawned containers, the workspace needs to be arranged before the cursor is warped. The shell functions each implement their own fullscreen and arrange checks, move them into the view_map function and pass their states via boolean arguments. Fixes #2819 --- sway/desktop/xdg_shell.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'sway/desktop/xdg_shell.c') diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index 46582204..1ed45a6b 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -406,27 +406,19 @@ static void handle_map(struct wl_listener *listener, void *data) { view->natural_height = view->wlr_xdg_surface->surface->current.height; } - view_map(view, view->wlr_xdg_surface->surface); + bool csd = false; if (!view->xdg_decoration) { struct sway_server_decoration *deco = - decoration_from_surface(xdg_surface->surface); - bool csd = !deco || deco->wlr_server_decoration->mode == + decoration_from_surface(xdg_surface->surface); + csd = !deco || deco->wlr_server_decoration->mode == WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; - view_update_csd_from_client(view, csd); - } - if (xdg_surface->toplevel->client_pending.fullscreen) { - container_set_fullscreen(view->container, true); - arrange_workspace(view->container->workspace); - } else { - if (view->container->parent) { - arrange_container(view->container->parent); - } else if (view->container->workspace) { - arrange_workspace(view->container->workspace); - } } + view_map(view, view->wlr_xdg_surface->surface, + xdg_surface->toplevel->client_pending.fullscreen, csd); + transaction_commit_dirty(); xdg_shell_view->commit.notify = handle_commit; -- cgit v1.2.3