aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands/move.c2
-rw-r--r--sway/commands/reload.c11
-rw-r--r--sway/tree/view.c11
3 files changed, 12 insertions, 12 deletions
diff --git a/sway/commands/move.c b/sway/commands/move.c
index a5b7f661..e0a958bf 100644
--- a/sway/commands/move.c
+++ b/sway/commands/move.c
@@ -108,7 +108,7 @@ static void workspace_focus_fullscreen(struct sway_workspace *workspace) {
if (focus_ws == workspace) {
struct sway_node *new_focus =
seat_get_focus_inactive(seat, &workspace->fullscreen->node);
- seat_set_focus(seat, new_focus);
+ seat_set_raw_focus(seat, new_focus);
}
}
}
diff --git a/sway/commands/reload.c b/sway/commands/reload.c
index 9e136d48..791081a8 100644
--- a/sway/commands/reload.c
+++ b/sway/commands/reload.c
@@ -5,9 +5,17 @@
#include "sway/ipc-server.h"
#include "sway/server.h"
#include "sway/tree/arrange.h"
+#include "sway/tree/view.h"
#include "list.h"
#include "log.h"
+static void rebuild_textures_iterator(struct sway_container *con, void *data) {
+ if (con->view) {
+ view_update_marks_textures(con->view);
+ }
+ container_update_title_textures(con);
+}
+
static void do_reload(void *data) {
// store bar ids to check against new bars for barconfig_update events
list_t *bar_ids = create_list();
@@ -40,6 +48,9 @@ static void do_reload(void *data) {
list_foreach(bar_ids, free);
list_free(bar_ids);
+ config_update_font_height(true);
+ root_for_each_container(rebuild_textures_iterator, NULL);
+
arrange_root();
}
diff --git a/sway/tree/view.c b/sway/tree/view.c
index b23afb97..a8486dd7 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -731,13 +731,6 @@ static void view_child_handle_surface_destroy(struct wl_listener *listener,
view_child_destroy(child);
}
-static void view_child_handle_view_unmap(struct wl_listener *listener,
- void *data) {
- struct sway_view_child *child =
- wl_container_of(listener, child, view_unmap);
- view_child_destroy(child);
-}
-
static void view_init_subsurfaces(struct sway_view *view,
struct wlr_surface *surface) {
struct wlr_subsurface *subsurface;
@@ -779,9 +772,6 @@ void view_child_init(struct sway_view_child *child,
child->surface_map.notify = view_child_handle_surface_map;
child->surface_unmap.notify = view_child_handle_surface_unmap;
- wl_signal_add(&view->events.unmap, &child->view_unmap);
- child->view_unmap.notify = view_child_handle_view_unmap;
-
struct sway_output *output = child->view->container->workspace->output;
wlr_surface_send_enter(child->surface, output->wlr_output);
@@ -791,7 +781,6 @@ void view_child_init(struct sway_view_child *child,
void view_child_destroy(struct sway_view_child *child) {
wl_list_remove(&child->surface_commit.link);
wl_list_remove(&child->surface_destroy.link);
- wl_list_remove(&child->view_unmap.link);
if (child->impl && child->impl->destroy) {
child->impl->destroy(child);