On Sat, Oct 16, 2021 at 10:18:18PM +0800, Xu Lu wrote:
> The related code is in line 1326-1332 in dwm.c (current git HEAD):
> 
>       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);
>       }
> 
> This outer if statement dates back to 13 years ago in [1]. The changes
> in movemouse in [1] got removed in [2]. The changes in resizemouse is
> neither perfect. Width and height are compared with coordinates, which
> is not a proper way. As a result, it does not work well, e.g., for
> multi-monitor setup.
> 
> 
> The expected behavior should be to constraint the resizing within the
> window area of the current monitor.
> 
> Now, in a multi-monitor set-up, start two windows in one monitor. Try
> resize the window in the stack. During resize, move the cursor directly
> into the other monitor to the right(suppose it is set up that way).
> This way, the window will be resized. But, if there was one window,
> the same action won't resize it.
> 
> 
> Possible solutions:
> 
> I am not a C developer, but I tried some changes and works for me (even
> works with patches like resizecorners):
> 
>       if (ev.xmotion.x >= selmon->wx && ev.xmotion.x <= selmon->wx + 
> selmon->ww
>       && ev.xmotion.y >= selmon->wy && ev.xmotion.y <= selmon->wy + 
> selmon->wh)
> 
> Or, with the help of 'INTERSECT' macro:
> 
>       if (INTERSECT(ev.xmotion.x, ev.xmotion.y, 1, 1, selmon) == 1)
> 
> The two are basically equivalent to each other. This tests whether the
> cursor is inside the monitor's window area, not sure if that's still
> the same intention as before.
> 
> Or, remove the outer if like in [2]. So the resizing is not constrained
> by the window area.
> 
> [1]: 
> https://git.suckless.org/dwm/commit/71365a524f67235024de7db277c63f8ac4f46569.html
> [2]: 
> https://git.suckless.org/dwm/commit/5b238c8dab945023b6a16a6c9f642b11137f2204.html
> 

Hi,

Thank you for the feedback. I've looked at it on a multi-monitor setup and also
discussed it on IRC with other people and the current behaviour seems expected.

Unless I misunderstand the issue I think it is not a bug.

-- 
Kind regards,
Hiltjo

Reply via email to