mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-06-19 14:33:16 -04:00
opt: refresh decorate config auto when reload config
This commit is contained in:
parent
4a526bf713
commit
3251e9d3bb
6 changed files with 76 additions and 17 deletions
|
|
@ -65,7 +65,7 @@ You can also color-code windows based on their state:
|
||||||
| `text_decorate_corner_radius` | `5` | label corner radius.|
|
| `text_decorate_corner_radius` | `5` | label corner radius.|
|
||||||
| `text_decorate_padding_x` | `10` | label horizontal padding.|
|
| `text_decorate_padding_x` | `10` | label horizontal padding.|
|
||||||
| `text_decorate_padding_y` | `10` | label vertical padding.|
|
| `text_decorate_padding_y` | `10` | label vertical padding.|
|
||||||
| `text_decorate_font_desc` | `monospace Bold 12` | label font set.|
|
| `text_decorate_font_desc` | `monospace Bold 16` | label font set.|
|
||||||
|
|
||||||
## Cursor Theme
|
## Cursor Theme
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3712,13 +3712,13 @@ void set_value_default() {
|
||||||
config.textdata.bg_color[1] = 0x32 / 255.0f;
|
config.textdata.bg_color[1] = 0x32 / 255.0f;
|
||||||
config.textdata.bg_color[2] = 0x32 / 255.0f;
|
config.textdata.bg_color[2] = 0x32 / 255.0f;
|
||||||
config.textdata.bg_color[3] = 1.0f;
|
config.textdata.bg_color[3] = 1.0f;
|
||||||
config.textdata.focus_fg_color[0] = 0x32 / 255.0f;
|
config.textdata.focus_fg_color[0] = 0xed / 255.0f;
|
||||||
config.textdata.focus_fg_color[1] = 0x32 / 255.0f;
|
config.textdata.focus_fg_color[1] = 0xa6 / 255.0f;
|
||||||
config.textdata.focus_fg_color[2] = 0x32 / 255.0f;
|
config.textdata.focus_fg_color[2] = 0xb4 / 255.0f;
|
||||||
config.textdata.focus_fg_color[3] = 1.0f;
|
config.textdata.focus_fg_color[3] = 1.0f;
|
||||||
config.textdata.focus_bg_color[0] = 0xc4 / 255.0f;
|
config.textdata.focus_bg_color[0] = 0x4e / 255.0f;
|
||||||
config.textdata.focus_bg_color[1] = 0x93 / 255.0f;
|
config.textdata.focus_bg_color[1] = 0x45 / 255.0f;
|
||||||
config.textdata.focus_bg_color[2] = 0x9d / 255.0f;
|
config.textdata.focus_bg_color[2] = 0x3c / 255.0f;
|
||||||
config.textdata.focus_bg_color[3] = 1.0f;
|
config.textdata.focus_bg_color[3] = 1.0f;
|
||||||
config.textdata.border_color[0] = 0x8b / 255.0f;
|
config.textdata.border_color[0] = 0x8b / 255.0f;
|
||||||
config.textdata.border_color[1] = 0xaa / 255.0f;
|
config.textdata.border_color[1] = 0xaa / 255.0f;
|
||||||
|
|
@ -4006,6 +4006,10 @@ void reapply_property(void) {
|
||||||
c->bw = config.borderpx;
|
c->bw = config.borderpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mango_text_node_apply_config(c->text_node, &config.textdata);
|
||||||
|
mango_titlebar_node_apply_config(c->titlebar_node,
|
||||||
|
&config.textdata);
|
||||||
|
|
||||||
wlr_scene_rect_set_color(c->droparea, config.dropcolor);
|
wlr_scene_rect_set_color(c->droparea, config.dropcolor);
|
||||||
wlr_scene_rect_set_color(c->splitindicator[0], config.splitcolor);
|
wlr_scene_rect_set_color(c->splitindicator[0], config.splitcolor);
|
||||||
wlr_scene_rect_set_color(c->splitindicator[1], config.splitcolor);
|
wlr_scene_rect_set_color(c->splitindicator[1], config.splitcolor);
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ struct mango_text_node *mango_text_node_create(struct wlr_scene_tree *parent,
|
||||||
node->padding_x = data.padding_x;
|
node->padding_x = data.padding_x;
|
||||||
node->padding_y = data.padding_y;
|
node->padding_y = data.padding_y;
|
||||||
node->font_desc =
|
node->font_desc =
|
||||||
g_strdup(data.font_desc ? data.font_desc : "monospace Bold 12");
|
g_strdup(data.font_desc ? data.font_desc : "monospace Bold 16");
|
||||||
|
|
||||||
node->cached_text = NULL;
|
node->cached_text = NULL;
|
||||||
node->cached_scale = -1.0f;
|
node->cached_scale = -1.0f;
|
||||||
|
|
@ -440,7 +440,7 @@ mango_titlebar_node_create(void *mango_node_data, struct wlr_scene_tree *parent,
|
||||||
node->padding_x = data.padding_x;
|
node->padding_x = data.padding_x;
|
||||||
node->padding_y = data.padding_y;
|
node->padding_y = data.padding_y;
|
||||||
node->font_desc =
|
node->font_desc =
|
||||||
g_strdup(data.font_desc ? data.font_desc : "monospace Bold 12");
|
g_strdup(data.font_desc ? data.font_desc : "monospace Bold 16");
|
||||||
|
|
||||||
node->target_width = width;
|
node->target_width = width;
|
||||||
node->target_height = height;
|
node->target_height = height;
|
||||||
|
|
@ -784,3 +784,56 @@ void mango_titlebar_node_set_colors(struct mango_titlebar_node *node,
|
||||||
mango_titlebar_node_update(node, node->last_text, scale);
|
mango_titlebar_node_update(node, node->last_text, scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mango_text_node_apply_config(struct mango_text_node *node,
|
||||||
|
const TextDrawData *data) {
|
||||||
|
if (!node || !data)
|
||||||
|
return;
|
||||||
|
|
||||||
|
memcpy(node->fg_color, data->fg_color, sizeof(node->fg_color));
|
||||||
|
memcpy(node->bg_color, data->bg_color, sizeof(node->bg_color));
|
||||||
|
memcpy(node->focus_fg_color, data->focus_fg_color,
|
||||||
|
sizeof(node->focus_fg_color));
|
||||||
|
memcpy(node->focus_bg_color, data->focus_bg_color,
|
||||||
|
sizeof(node->focus_bg_color));
|
||||||
|
memcpy(node->border_color, data->border_color, sizeof(node->border_color));
|
||||||
|
node->border_width = data->border_width;
|
||||||
|
node->corner_radius = data->corner_radius;
|
||||||
|
node->padding_x = data->padding_x;
|
||||||
|
node->padding_y = data->padding_y;
|
||||||
|
|
||||||
|
g_free(node->font_desc);
|
||||||
|
node->font_desc =
|
||||||
|
g_strdup(data->font_desc ? data->font_desc : "monospace Bold 16");
|
||||||
|
|
||||||
|
if (node->cached_text && node->cached_scale > 0.0f) {
|
||||||
|
mango_text_node_update(node, node->cached_text, node->cached_scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void mango_titlebar_node_apply_config(struct mango_titlebar_node *node,
|
||||||
|
const TextDrawData *data) {
|
||||||
|
if (!node || !data)
|
||||||
|
return;
|
||||||
|
|
||||||
|
memcpy(node->fg_color, data->fg_color, sizeof(node->fg_color));
|
||||||
|
memcpy(node->bg_color, data->bg_color, sizeof(node->bg_color));
|
||||||
|
memcpy(node->focus_fg_color, data->focus_fg_color,
|
||||||
|
sizeof(node->focus_fg_color));
|
||||||
|
memcpy(node->focus_bg_color, data->focus_bg_color,
|
||||||
|
sizeof(node->focus_bg_color));
|
||||||
|
memcpy(node->border_color, data->border_color, sizeof(node->border_color));
|
||||||
|
node->border_width = data->border_width;
|
||||||
|
node->corner_radius = data->corner_radius;
|
||||||
|
node->padding_x = data->padding_x;
|
||||||
|
node->padding_y = data->padding_y;
|
||||||
|
|
||||||
|
g_free(node->font_desc);
|
||||||
|
node->font_desc =
|
||||||
|
g_strdup(data->font_desc ? data->font_desc : "monospace Bold 16");
|
||||||
|
|
||||||
|
if (node->last_text) {
|
||||||
|
float scale = node->last_scale > 0.0f ? node->last_scale : 1.0f;
|
||||||
|
mango_titlebar_node_update(node, node->last_text, scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -157,5 +157,8 @@ void mango_titlebar_node_set_focus(struct mango_titlebar_node *node,
|
||||||
|
|
||||||
void mango_titlebar_node_set_colors(struct mango_titlebar_node *node,
|
void mango_titlebar_node_set_colors(struct mango_titlebar_node *node,
|
||||||
const float fg[4], const float bg[4]);
|
const float fg[4], const float bg[4]);
|
||||||
|
void mango_text_node_apply_config(struct mango_text_node *node,
|
||||||
|
const TextDrawData *data);
|
||||||
|
void mango_titlebar_node_apply_config(struct mango_titlebar_node *node,
|
||||||
|
const TextDrawData *data);
|
||||||
#endif // TEXT_NODE_H
|
#endif // TEXT_NODE_H
|
||||||
|
|
@ -553,16 +553,16 @@ void monocle(Monitor *m) {
|
||||||
int32_t cur_gapiv = enablegaps ? m->gappiv : 0;
|
int32_t cur_gapiv = enablegaps ? m->gappiv : 0;
|
||||||
int32_t cur_gapih = enablegaps ? m->gappih : 0;
|
int32_t cur_gapih = enablegaps ? m->gappih : 0;
|
||||||
|
|
||||||
if (config.smartgaps && m->visible_tiling_clients == 1) {
|
if (config.smartgaps && m->visible_fake_tiling_clients == 1) {
|
||||||
cur_gappov = cur_gappoh = cur_gapiv = cur_gapih = 0;
|
cur_gappov = cur_gappoh = cur_gapiv = cur_gapih = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int n = m->visible_tiling_clients;
|
int n = m->visible_fake_tiling_clients;
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wl_list_for_each(c, &fstack, flink) {
|
wl_list_for_each(c, &fstack, flink) {
|
||||||
if (c->iskilling || c->isunglobal || !ISTILED(c))
|
if (c->iskilling || c->isunglobal || !ISFAKETILED(c))
|
||||||
continue;
|
continue;
|
||||||
if (VISIBLEON(c, m)) {
|
if (VISIBLEON(c, m)) {
|
||||||
fc = c;
|
fc = c;
|
||||||
|
|
@ -577,7 +577,6 @@ void monocle(Monitor *m) {
|
||||||
geom.height = m->w.height - 2 * cur_gappov;
|
geom.height = m->w.height - 2 * cur_gappov;
|
||||||
client_tile_resize(fc, geom, 0);
|
client_tile_resize(fc, geom, 0);
|
||||||
monocle_set_focus(fc, true);
|
monocle_set_focus(fc, true);
|
||||||
wlr_scene_node_raise_to_top(&fc->scene->node);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -592,12 +591,11 @@ void monocle(Monitor *m) {
|
||||||
int title_x = m->w.x + cur_gappoh;
|
int title_x = m->w.x + cur_gappoh;
|
||||||
|
|
||||||
wl_list_for_each(c, &clients, link) {
|
wl_list_for_each(c, &clients, link) {
|
||||||
if (!VISIBLEON(c, m) || !ISTILED(c))
|
if (!VISIBLEON(c, m) || !ISFAKETILED(c))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (c == fc) {
|
if (c == fc) {
|
||||||
monocle_set_focus(c, true);
|
monocle_set_focus(c, true);
|
||||||
wlr_scene_node_raise_to_top(&c->scene->node);
|
|
||||||
} else {
|
} else {
|
||||||
monocle_set_focus(c, false);
|
monocle_set_focus(c, false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,8 +169,8 @@ enum {
|
||||||
LyrBg,
|
LyrBg,
|
||||||
LyrBlur,
|
LyrBlur,
|
||||||
LyrBottom,
|
LyrBottom,
|
||||||
LyrTile,
|
|
||||||
LyrDecorate,
|
LyrDecorate,
|
||||||
|
LyrTile,
|
||||||
LyrTop,
|
LyrTop,
|
||||||
LyrFadeOut,
|
LyrFadeOut,
|
||||||
LyrOverlay,
|
LyrOverlay,
|
||||||
|
|
@ -4585,6 +4585,7 @@ mapnotify(struct wl_listener *listener, void *data) {
|
||||||
mangonodedata, layers[LyrDecorate], config.textdata, 0, 0);
|
mangonodedata, layers[LyrDecorate], config.textdata, 0, 0);
|
||||||
wlr_scene_node_lower_to_bottom(&c->titlebar_node->scene_buffer->node);
|
wlr_scene_node_lower_to_bottom(&c->titlebar_node->scene_buffer->node);
|
||||||
wlr_scene_node_set_enabled(&c->titlebar_node->scene_buffer->node, false);
|
wlr_scene_node_set_enabled(&c->titlebar_node->scene_buffer->node, false);
|
||||||
|
mango_titlebar_node_update(c->titlebar_node, client_get_title(c), 1.0);
|
||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
c->splitindicator[i] = wlr_scene_rect_create(
|
c->splitindicator[i] = wlr_scene_rect_create(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue