fix: crash set window width or height less than 1

This commit is contained in:
DreamMaoMao 2025-04-15 16:37:53 +08:00
parent a65baf0ba5
commit 1f45f2a910

View file

@ -4848,6 +4848,8 @@ void resize(Client *c, struct wlr_box geo, int interact) {
if (strcmp(c->mon->pertag->ltidxs[c->mon->pertag->curtag]->name, if (strcmp(c->mon->pertag->ltidxs[c->mon->pertag->curtag]->name,
"scroller") == 0) { "scroller") == 0) {
c->geom = geo; c->geom = geo;
c->geom.width = MAX(1 + 2 * (int)c->bw, c->geom.width);
c->geom.height = MAX(1 + 2 * (int)c->bw, c->geom.height);
} else { // 这里会限制不允许窗口划出屏幕 } else { // 这里会限制不允许窗口划出屏幕
client_set_bounds( client_set_bounds(
c, geo.width, c, geo.width,
@ -4857,10 +4859,6 @@ void resize(Client *c, struct wlr_box geo, int interact) {
c, bbox); // 去掉这个推荐的窗口大小,因为有时推荐的窗口特别大导致平铺异常 c, bbox); // 去掉这个推荐的窗口大小,因为有时推荐的窗口特别大导致平铺异常
} }
if((int32_t)c->geom.width <0 || (int32_t)c->geom.height <0) {
return;
}
if (!c->is_open_animation) { if (!c->is_open_animation) {
c->animation.begin_fade_in = false; c->animation.begin_fade_in = false;
client_set_opacity(c, 1); client_set_opacity(c, 1);