opt: wayland floating client still center pos when open
This commit is contained in:
@@ -1747,7 +1747,7 @@ applyrulesgeom(Client *c) {
|
|||||||
c->geom.width = r->width > 0 ? r->width : c->geom.width;
|
c->geom.width = r->width > 0 ? r->width : c->geom.width;
|
||||||
c->geom.height = r->height > 0 ? r->height : c->geom.height;
|
c->geom.height = r->height > 0 ? r->height : c->geom.height;
|
||||||
// 重新计算居中的坐标
|
// 重新计算居中的坐标
|
||||||
if(r->offsetx || r->offsety || (client_is_x11(c) && client_surface_wants_focus(c)))
|
if(r->offsetx || r->offsety || (!client_is_x11(c) || client_surface_wants_focus(c)))
|
||||||
c->geom = setclient_coordinate_center(c->geom, r->offsetx, r->offsety);
|
c->geom = setclient_coordinate_center(c->geom, r->offsetx, r->offsety);
|
||||||
hit = r->height > 0 || r->width > 0 || r->offsetx != 0 || r->offsety != 0
|
hit = r->height > 0 || r->width > 0 || r->offsetx != 0 || r->offsety != 0
|
||||||
? 1
|
? 1
|
||||||
@@ -1810,7 +1810,7 @@ applyrules(Client *c) {
|
|||||||
c->geom.width = r->width > 0 ? r->width : c->geom.width;
|
c->geom.width = r->width > 0 ? r->width : c->geom.width;
|
||||||
c->geom.height = r->height > 0 ? r->height : c->geom.height;
|
c->geom.height = r->height > 0 ? r->height : c->geom.height;
|
||||||
// 重新计算居中的坐标
|
// 重新计算居中的坐标
|
||||||
if(r->offsetx || r->offsety || (client_is_x11(c) && client_surface_wants_focus(c)))
|
if(r->offsetx || r->offsety || (!client_is_x11(c) || client_surface_wants_focus(c)))
|
||||||
c->geom = setclient_coordinate_center(c->geom, r->offsetx, r->offsety);
|
c->geom = setclient_coordinate_center(c->geom, r->offsetx, r->offsety);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5306,7 +5306,7 @@ setfloating(Client *c, int floating) {
|
|||||||
target_box.width = target_box.width * 0.8;
|
target_box.width = target_box.width * 0.8;
|
||||||
}
|
}
|
||||||
// 重新计算居中的坐标
|
// 重新计算居中的坐标
|
||||||
if(client_is_x11(c) && client_surface_wants_focus(c))
|
if(!client_is_x11(c) || client_surface_wants_focus(c))
|
||||||
target_box = setclient_coordinate_center(target_box, 0, 0);
|
target_box = setclient_coordinate_center(target_box, 0, 0);
|
||||||
backup_box = c->geom;
|
backup_box = c->geom;
|
||||||
hit = applyrulesgeom(c);
|
hit = applyrulesgeom(c);
|
||||||
|
|||||||
Reference in New Issue
Block a user