mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
fix: border offset error by clip_box in clip_to_hide func
fix:clip_box error offset fix: miss border pos set
This commit is contained in:
parent
a2befaf5e7
commit
483ee706a0
1 changed files with 24 additions and 9 deletions
31
src/maomao.c
31
src/maomao.c
|
|
@ -1058,6 +1058,14 @@ void apply_border(Client *c, struct wlr_box clip_box, int offsetx,
|
|||
if (c->iskilling || !client_surface(c)->mapped)
|
||||
return;
|
||||
|
||||
if(clip_box.width > c->animation.current.width) {
|
||||
clip_box.width = c->animation.current.width;
|
||||
}
|
||||
|
||||
if(clip_box.height > c->animation.current.height) {
|
||||
clip_box.height = c->animation.current.height;
|
||||
}
|
||||
|
||||
if(!render_border) {
|
||||
set_rect_size(c->border[0], 0, 0);
|
||||
set_rect_size(c->border[1], 0, 0);
|
||||
|
|
@ -1094,22 +1102,21 @@ void apply_border(Client *c, struct wlr_box clip_box, int offsetx,
|
|||
clip_box.height - 2 * c->bw);
|
||||
} else if (c->animation.current.x + c->animation.current.width >
|
||||
c->mon->m.x + c->mon->m.width) {
|
||||
set_rect_size(c->border[3], GEZERO(c->bw - offsetx),
|
||||
set_rect_size(c->border[3], GEZERO(c->bw - (c->animation.current.x + c->animation.current.width - c->mon->m.x + c->mon->m.width)),
|
||||
clip_box.height - 2 * c->bw);
|
||||
} else if (c->animation.current.y < c->mon->m.y) {
|
||||
set_rect_size(c->border[0], clip_box.width, GEZERO(c->bw - offsety));
|
||||
} else if (c->animation.current.y + c->animation.current.height >
|
||||
c->mon->m.y + c->mon->m.height) {
|
||||
set_rect_size(c->border[1], clip_box.width, GEZERO(c->bw - offsety));
|
||||
set_rect_size(c->border[1], clip_box.width, GEZERO(c->bw - (c->animation.current.y + c->animation.current.height - c->mon->m.y + c->mon->m.height)));
|
||||
}
|
||||
}
|
||||
|
||||
wlr_scene_node_set_position(&c->border[0]->node, offsetx, offsety);
|
||||
wlr_scene_node_set_position(&c->border[2]->node, offsetx, c->bw + offsety);
|
||||
wlr_scene_node_set_position(&c->border[1]->node, offsetx,
|
||||
clip_box.height - c->bw + offsety);
|
||||
wlr_scene_node_set_position(
|
||||
&c->border[3]->node, clip_box.width - c->bw + offsetx, c->bw + offsety);
|
||||
wlr_scene_node_set_position(&c->border[1]->node, offsetx, clip_box.height - c->bw + offsety);
|
||||
wlr_scene_node_set_position(&c->border[3]->node, clip_box.width - c->bw + offsetx,
|
||||
c->bw + offsety);
|
||||
}
|
||||
|
||||
struct uvec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
||||
|
|
@ -1127,7 +1134,7 @@ struct uvec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
|||
if (ISTILED(c) || c->animation.tagining || c->animation.tagouted ||
|
||||
c->animation.tagouting) {
|
||||
if (c->animation.current.x <= c->mon->m.x) {
|
||||
offsetx = c->mon->m.x - c->animation.current.x - c->bw;
|
||||
offsetx = GEZERO(c->mon->m.x - c->animation.current.x);
|
||||
clip_box->x = clip_box->x + offsetx;
|
||||
clip_box->width = clip_box->width - offsetx;
|
||||
} else if (c->animation.current.x + c->animation.current.width >=
|
||||
|
|
@ -1139,7 +1146,7 @@ struct uvec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
|||
}
|
||||
|
||||
if (c->animation.current.y <= c->mon->m.y) {
|
||||
offsety = c->mon->m.y - c->animation.current.y - c->bw;
|
||||
offsety = GEZERO(c->mon->m.y - c->animation.current.y);
|
||||
clip_box->y = clip_box->y + offsety;
|
||||
clip_box->height = clip_box->height - offsety;
|
||||
} else if (c->animation.current.y + c->animation.current.height >=
|
||||
|
|
@ -1162,6 +1169,14 @@ struct uvec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
|
|||
wlr_scene_node_set_enabled(&c->scene->node, true);
|
||||
}
|
||||
|
||||
if(clip_box->width > c->animation.current.width) {
|
||||
clip_box->width = c->animation.current.width;
|
||||
}
|
||||
|
||||
if(clip_box->height > c->animation.current.height) {
|
||||
clip_box->height = c->animation.current.height;
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue