fix: error mark kill status
This commit is contained in:
15
main.c
15
main.c
@@ -761,6 +761,7 @@ bool client_animation_next_tick(Client *c) {
|
|||||||
wlr_scene_node_set_enabled(&c->scene->node, false);
|
wlr_scene_node_set_enabled(&c->scene->node, false);
|
||||||
client_set_suspended(c, true);
|
client_set_suspended(c, true);
|
||||||
c->animation.tagouted = true;
|
c->animation.tagouted = true;
|
||||||
|
c->animation.current = c->geom;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -1753,7 +1754,7 @@ void client_commit(Client *c) {
|
|||||||
wlr_output_schedule_frame(c->mon->wlr_output);
|
wlr_output_schedule_frame(c->mon->wlr_output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
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);
|
||||||
|
|
||||||
@@ -2883,7 +2884,7 @@ keypressmod(struct wl_listener *listener, void *data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void pending_kill_client(Client *c) {
|
void pending_kill_client(Client *c) {
|
||||||
c->iskilling = 1;
|
// c->iskilling = 1; //不可以提前标记已经杀掉,因为有些客户端可能拒绝
|
||||||
client_send_close(c);
|
client_send_close(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3095,7 +3096,7 @@ minimizenotify(struct wl_listener *listener, void *data) {
|
|||||||
// wlr_xdg_surface_schedule_configure(c->surface.xdg);
|
// wlr_xdg_surface_schedule_configure(c->surface.xdg);
|
||||||
// togglefakefullscreen(&(Arg){0});
|
// togglefakefullscreen(&(Arg){0});
|
||||||
Client *c = wl_container_of(listener, c, minimize);
|
Client *c = wl_container_of(listener, c, minimize);
|
||||||
|
|
||||||
if(!c || c->iskilling)
|
if(!c || c->iskilling)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -3774,7 +3775,7 @@ void resize(Client *c, struct wlr_box geo, int interact) {
|
|||||||
} else if (c->is_open_animation) {
|
} else if (c->is_open_animation) {
|
||||||
set_open_animaiton(c, c->geom);
|
set_open_animaiton(c, c->geom);
|
||||||
} else {
|
} else {
|
||||||
c->animainit_geom = oldgeom;
|
c->animainit_geom = c->animation.current;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->isnoborder || c->iskilling) {
|
if (c->isnoborder || c->iskilling) {
|
||||||
@@ -4834,6 +4835,8 @@ void unmapnotify(struct wl_listener *listener, void *data) {
|
|||||||
/* Called when the surface is unmapped, and should no longer be shown. */
|
/* Called when the surface is unmapped, and should no longer be shown. */
|
||||||
Client *c = wl_container_of(listener, c, unmap);
|
Client *c = wl_container_of(listener, c, unmap);
|
||||||
|
|
||||||
|
c->iskilling = 1;
|
||||||
|
|
||||||
if (c == grabc) {
|
if (c == grabc) {
|
||||||
cursor_mode = CurNormal;
|
cursor_mode = CurNormal;
|
||||||
grabc = NULL;
|
grabc = NULL;
|
||||||
@@ -5390,7 +5393,7 @@ void activatex11(struct wl_listener *listener, void *data) {
|
|||||||
void // 0.7
|
void // 0.7
|
||||||
configurex11(struct wl_listener *listener, void *data) {
|
configurex11(struct wl_listener *listener, void *data) {
|
||||||
Client *c = wl_container_of(listener, c, configure);
|
Client *c = wl_container_of(listener, c, configure);
|
||||||
|
|
||||||
if(!c || c->iskilling)
|
if(!c || c->iskilling)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -5521,4 +5524,4 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
usage:
|
usage:
|
||||||
die("Usage: %s [-v] [-d] [-s startup command]", argv[0]);
|
die("Usage: %s [-v] [-d] [-s startup command]", argv[0]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user