diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-05-05 18:25:31 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-05-05 22:29:37 +1000 |
commit | 5d6d24e71aabc026c99ac736c788fa8103658c42 (patch) | |
tree | fe0fd2a72ceeb282a335692ebd53f618c476ab21 | |
parent | Refactor parse_title_format() (diff) | |
download | sway-5d6d24e71aabc026c99ac736c788fa8103658c42.tar.gz sway-5d6d24e71aabc026c99ac736c788fa8103658c42.tar.zst sway-5d6d24e71aabc026c99ac736c788fa8103658c42.zip |
Move code for re-arranging after font height change into a common place
-rw-r--r-- | include/sway/config.h | 5 | ||||
-rw-r--r-- | sway/commands/font.c | 6 | ||||
-rw-r--r-- | sway/commands/title_format.c | 4 | ||||
-rw-r--r-- | sway/config.c | 9 | ||||
-rw-r--r-- | sway/tree/view.c | 7 |
5 files changed, 15 insertions, 16 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index db942c3f..fa40ef4e 100644 --- a/include/sway/config.h +++ b/include/sway/config.h | |||
@@ -465,8 +465,11 @@ void free_bar_config(struct bar_config *bar); | |||
465 | * Updates the value of config->font_height based on the max title height | 465 | * Updates the value of config->font_height based on the max title height |
466 | * reported by each container. If recalculate is true, the containers will | 466 | * reported by each container. If recalculate is true, the containers will |
467 | * recalculate their heights before reporting. | 467 | * recalculate their heights before reporting. |
468 | * | ||
469 | * If the height has changed, all containers will be rearranged to take on the | ||
470 | * new size. | ||
468 | */ | 471 | */ |
469 | void config_find_font_height(bool recalculate); | 472 | void config_update_font_height(bool recalculate); |
470 | 473 | ||
471 | /* Global config singleton. */ | 474 | /* Global config singleton. */ |
472 | extern struct sway_config *config; | 475 | extern struct sway_config *config; |
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 | ||
744 | void config_find_font_height(bool recalculate) { | 745 | void 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 | } |