aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-05-05 18:25:31 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-05-05 22:29:37 +1000
commit5d6d24e71aabc026c99ac736c788fa8103658c42 (patch)
treefe0fd2a72ceeb282a335692ebd53f618c476ab21 /sway
parentRefactor parse_title_format() (diff)
downloadsway-5d6d24e71aabc026c99ac736c788fa8103658c42.tar.gz
sway-5d6d24e71aabc026c99ac736c788fa8103658c42.tar.zst
sway-5d6d24e71aabc026c99ac736c788fa8103658c42.zip
Move code for re-arranging after font height change into a common place
Diffstat (limited to 'sway')
-rw-r--r--sway/commands/font.c6
-rw-r--r--sway/commands/title_format.c4
-rw-r--r--sway/config.c9
-rw-r--r--sway/tree/view.c7
4 files changed, 11 insertions, 15 deletions
diff --git a/sway/commands/font.c b/sway/commands/font.c
index 38ad8880..8e0b51e3 100644
--- a/sway/commands/font.c
+++ b/sway/commands/font.c
@@ -2,7 +2,6 @@
2#include <string.h> 2#include <string.h>
3#include "sway/commands.h" 3#include "sway/commands.h"
4#include "sway/config.h" 4#include "sway/config.h"
5#include "sway/tree/arrange.h"
6#include "log.h" 5#include "log.h"
7#include "stringop.h" 6#include "stringop.h"
8 7
@@ -14,9 +13,6 @@ struct cmd_results *cmd_font(int argc, char **argv) {
14 char *font = join_args(argv, argc); 13 char *font = join_args(argv, argc);
15 free(config->font); 14 free(config->font);
16 config->font = strdup(font); 15 config->font = strdup(font);
17 config_find_font_height(true); 16 config_update_font_height(true);
18 if (!config->reading) {
19 arrange_root();
20 }
21 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 17 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
22} 18}
diff --git a/sway/commands/title_format.c b/sway/commands/title_format.c
index 26ddb2f4..3d1c578c 100644
--- a/sway/commands/title_format.c
+++ b/sway/commands/title_format.c
@@ -2,7 +2,6 @@
2#include <string.h> 2#include <string.h>
3#include "sway/commands.h" 3#include "sway/commands.h"
4#include "sway/config.h" 4#include "sway/config.h"
5#include "sway/tree/arrange.h"
6#include "sway/tree/view.h" 5#include "sway/tree/view.h"
7#include "log.h" 6#include "log.h"
8#include "stringop.h" 7#include "stringop.h"
@@ -25,7 +24,6 @@ struct cmd_results *cmd_title_format(int argc, char **argv) {
25 } 24 }
26 view->title_format = format; 25 view->title_format = format;
27 view_update_title(view, true); 26 view_update_title(view, true);
28 config_find_font_height(true); 27 config_update_font_height(true);
29 arrange_root();
30 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 28 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
31} 29}
diff --git a/sway/config.c b/sway/config.c
index 2e5eab2b..a14f4ec6 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -24,6 +24,7 @@
24#include "sway/input/seat.h" 24#include "sway/input/seat.h"
25#include "sway/commands.h" 25#include "sway/commands.h"
26#include "sway/config.h" 26#include "sway/config.h"
27#include "sway/tree/arrange.h"
27#include "sway/tree/layout.h" 28#include "sway/tree/layout.h"
28#include "cairo.h" 29#include "cairo.h"
29#include "pango.h" 30#include "pango.h"
@@ -741,8 +742,14 @@ static void find_font_height_iterator(struct sway_container *container,
741 } 742 }
742} 743}
743 744
744void config_find_font_height(bool recalculate) { 745void config_update_font_height(bool recalculate) {
746 size_t prev_max_height = config->font_height;
745 config->font_height = 0; 747 config->font_height = 0;
748
746 container_for_each_descendant_dfs(&root_container, 749 container_for_each_descendant_dfs(&root_container,
747 find_font_height_iterator, &recalculate); 750 find_font_height_iterator, &recalculate);
751
752 if (config->font_height != prev_max_height) {
753 arrange_root();
754 }
748} 755}
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 386144f6..851348d8 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -601,10 +601,5 @@ void view_update_title(struct sway_view *view, bool force) {
601 container_calculate_title_height(view->swayc); 601 container_calculate_title_height(view->swayc);
602 container_update_title_textures(view->swayc); 602 container_update_title_textures(view->swayc);
603 container_notify_child_title_changed(view->swayc->parent); 603 container_notify_child_title_changed(view->swayc->parent);
604 604 config_update_font_height(false);
605 size_t prev_max_height = config->font_height;
606 config_find_font_height(false);
607 if (config->font_height != prev_max_height) {
608 arrange_root();
609 }
610} 605}