commit ada9daf9b674da39a792cfa680edc95dd217ee2c
parent 8d7122328c8f7c5c3998a5de815dec5fc021b705
Author: wh1tepearl <wh1tepearl@gmail.com>
Date: Sat, 17 Jan 2026 17:10:36 +0000
Bug fix
Diffstat:
| M | vxwm.c | | | 25 | ++++++++++++++++++------- |
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/vxwm.c b/vxwm.c
@@ -11,6 +11,7 @@ Solved issues:
1. When using BETTER_RESIZE and resizing window on top of bar, bar will start to erase as window resizes
2. When usinng BAR_PADDING status text doesn't show.
3. Windows teleports when hitting its minimum size when using BETTER_RESIZE
+4. When using BETTER_RESIZE window is not becaming floating when resizing
*/
/* vxwm compile-time options */
@@ -1534,13 +1535,23 @@ resizemouse(const Arg *arg)
if (left) nx = orig_x + (orig_w - nw);
if (top) ny = orig_y + (orig_h - nh);
- if (c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
- && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
- {
- if (!c->isfloating && selmon->lt[selmon->sellt]->arrange
- && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
- togglefloating(NULL);
- }
+ int dx_final = nw - orig_w;
+ int dy_final = nh - orig_h;
+
+ if (!c->isfloating && selmon->lt[selmon->sellt]->arrange &&
+ (abs(dx_final) > snap || abs(dy_final) > snap)) {
+
+ if (nx >= selmon->wx && nx + nw <= selmon->wx + selmon->ww &&
+ ny >= selmon->wy && ny + nh <= selmon->wy + selmon->wh) {
+
+ togglefloating(NULL);
+
+ orig_x = c->x;
+ orig_y = c->y;
+ orig_w = c->w;
+ orig_h = c->h;
+ }
+ }
#if USE_RESIZECLIENT_FUNC
resizeclient(c, nx, ny, nw, nh);
#else