修复客户端resize不完全

This commit is contained in:
DreamMaoMao 2025-02-08 11:31:27 +08:00
parent fa07f52af9
commit 91dd5b1f1c

16
main.c
View file

@ -1725,10 +1725,7 @@ void client_set_pending_state(Client *c) {
(!c->is_open_animation && (!c->is_open_animation &&
wlr_box_equal(&c->current, &c->pending))) { wlr_box_equal(&c->current, &c->pending))) {
c->animation.should_animate = false; c->animation.should_animate = false;
} else if (c->is_restoring_from_ov) { } else {
c->is_restoring_from_ov = false;
c->animation.should_animate = false;
} else {
c->animation.should_animate = true; c->animation.should_animate = true;
c->animation.initial = c->animainit_geom; c->animation.initial = c->animainit_geom;
} }
@ -1760,12 +1757,14 @@ void client_commit(Client *c) {
wlr_output_schedule_frame(c->mon->wlr_output); wlr_output_schedule_frame(c->mon->wlr_output);
} }
void // 0.5 void
commitnotify(struct wl_listener *listener, void *data) { commitnotify(struct wl_listener *listener, void *data) {
Client *c = wl_container_of(listener, c, commit); Client *c = wl_container_of(listener, c, commit);
if(!c || c->iskilling) if(!c || c->iskilling)
return; return;
// if don't do this, some client may resize uncompleted
resize(c, c->geom, (c->isfloating && !c->isfullscreen));
} }
@ -4622,8 +4621,11 @@ void overview_restore(Client *c, const Arg *arg) {
client_set_fullscreen(c, false); client_set_fullscreen(c, false);
} }
} else { } else {
resizeclient(c, c->overview_backup_x, c->overview_backup_y, if(c->is_restoring_from_ov ) {
c->overview_backup_w, c->overview_backup_h, 0); c->is_restoring_from_ov = false;
resizeclient(c, c->overview_backup_x, c->overview_backup_y,
c->overview_backup_w, c->overview_backup_h, 0);
}
} }
if (c->bw == 0 && !c->isnoborder && if (c->bw == 0 && !c->isnoborder &&