aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sway/tree/view.h1
-rw-r--r--sway/commands/move.c2
-rw-r--r--sway/commands/reload.c11
-rw-r--r--sway/tree/view.c11
4 files changed, 12 insertions, 13 deletions
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index dc1f0b02..a0b4dd46 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -226,7 +226,6 @@ struct sway_view_child {
226 struct wl_listener surface_map; 226 struct wl_listener surface_map;
227 struct wl_listener surface_unmap; 227 struct wl_listener surface_unmap;
228 struct wl_listener surface_destroy; 228 struct wl_listener surface_destroy;
229 struct wl_listener view_unmap;
230}; 229};
231 230
232struct sway_xdg_popup_v6 { 231struct sway_xdg_popup_v6 {
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) {
108 if (focus_ws == workspace) { 108 if (focus_ws == workspace) {
109 struct sway_node *new_focus = 109 struct sway_node *new_focus =
110 seat_get_focus_inactive(seat, &workspace->fullscreen->node); 110 seat_get_focus_inactive(seat, &workspace->fullscreen->node);
111 seat_set_focus(seat, new_focus); 111 seat_set_raw_focus(seat, new_focus);
112 } 112 }
113 } 113 }
114} 114}
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 @@
5#include "sway/ipc-server.h" 5#include "sway/ipc-server.h"
6#include "sway/server.h" 6#include "sway/server.h"
7#include "sway/tree/arrange.h" 7#include "sway/tree/arrange.h"
8#include "sway/tree/view.h"
8#include "list.h" 9#include "list.h"
9#include "log.h" 10#include "log.h"
10 11
12static void rebuild_textures_iterator(struct sway_container *con, void *data) {
13 if (con->view) {
14 view_update_marks_textures(con->view);
15 }
16 container_update_title_textures(con);
17}
18
11static void do_reload(void *data) { 19static void do_reload(void *data) {
12 // store bar ids to check against new bars for barconfig_update events 20 // store bar ids to check against new bars for barconfig_update events
13 list_t *bar_ids = create_list(); 21 list_t *bar_ids = create_list();
@@ -40,6 +48,9 @@ static void do_reload(void *data) {
40 list_foreach(bar_ids, free); 48 list_foreach(bar_ids, free);
41 list_free(bar_ids); 49 list_free(bar_ids);
42 50
51 config_update_font_height(true);
52 root_for_each_container(rebuild_textures_iterator, NULL);
53
43 arrange_root(); 54 arrange_root();
44} 55}
45 56
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,
731 view_child_destroy(child); 731 view_child_destroy(child);
732} 732}
733 733
734static void view_child_handle_view_unmap(struct wl_listener *listener,
735 void *data) {
736 struct sway_view_child *child =
737 wl_container_of(listener, child, view_unmap);
738 view_child_destroy(child);
739}
740
741static void view_init_subsurfaces(struct sway_view *view, 734static void view_init_subsurfaces(struct sway_view *view,
742 struct wlr_surface *surface) { 735 struct wlr_surface *surface) {
743 struct wlr_subsurface *subsurface; 736 struct wlr_subsurface *subsurface;
@@ -779,9 +772,6 @@ void view_child_init(struct sway_view_child *child,
779 child->surface_map.notify = view_child_handle_surface_map; 772 child->surface_map.notify = view_child_handle_surface_map;
780 child->surface_unmap.notify = view_child_handle_surface_unmap; 773 child->surface_unmap.notify = view_child_handle_surface_unmap;
781 774
782 wl_signal_add(&view->events.unmap, &child->view_unmap);
783 child->view_unmap.notify = view_child_handle_view_unmap;
784
785 struct sway_output *output = child->view->container->workspace->output; 775 struct sway_output *output = child->view->container->workspace->output;
786 wlr_surface_send_enter(child->surface, output->wlr_output); 776 wlr_surface_send_enter(child->surface, output->wlr_output);
787 777
@@ -791,7 +781,6 @@ void view_child_init(struct sway_view_child *child,
791void view_child_destroy(struct sway_view_child *child) { 781void view_child_destroy(struct sway_view_child *child) {
792 wl_list_remove(&child->surface_commit.link); 782 wl_list_remove(&child->surface_commit.link);
793 wl_list_remove(&child->surface_destroy.link); 783 wl_list_remove(&child->surface_destroy.link);
794 wl_list_remove(&child->view_unmap.link);
795 784
796 if (child->impl && child->impl->destroy) { 785 if (child->impl && child->impl->destroy) {
797 child->impl->destroy(child); 786 child->impl->destroy(child);