urob / fvwm-tiling

Tiling functionality for the FVWM window manager
39 stars 7 forks source link

Moving Windows Shifts them Down #2

Open yikelu opened 12 years ago

yikelu commented 12 years ago

When I use the shortcuts Alt+Ctrl+J: Move current window clockwise Alt+Ctrl+K: Move current window counterclockwise Ctrl+Alt+Enter: Make current window master

the affected windows (both with move, the new master with C-M-enter) get shifted down by one line. If I repeat these commands, the windows keep on moving down until they eventually disappear off the screen.

This is the most noticeable effect. In addition, the windows seem to get resized smaller (the right hand edge keeps moving left).

Also, for any tiling at all, there is a one line strip of desktop space exposed right below the task manager bar. This is in contrast to your video where your windows fill the entire workspace.

PS This is a great config otherwise.

Edit: fvwm 2.6.3 compiled on Jan 24 2012 at 13:40:22 with support for: ReadLine, XPM, PNG, SVG, Shape, XShm, SM, Xinerama, XRender, XCursor, XFT, NLS

yikelu commented 12 years ago

I managed to hack up a workaround after I noticed "Refresh Desktop" put things in the right places. So I put this line:

into a bunch of the calling functions for re-tiling, swapping windows etc. Fixes the problem, although there is now some empty space on the bottom and right side of the screen with a 3 window setup (about one line of space in each case).

urob commented 12 years ago

I tried to reproduce that error with fvwm 2.5.30 and various screen resolutions, but everything works fine there. I'll try to set up the newest version of fvwm some time soon and see if I can find the problem.

In the meantime, you could try to change lines 900, 901 to

PipeRead 'echo SetEnv vp.width_1 $(( $[vp.width] ))' PipeRead 'echo SetEnv vp.height_1 $(( $[vp.height] ))'

That is, set the lower boundary for all tiling functions to the screen boundary. In my original setup the screen boundary was set to the screen size minus 1 in order to prevent windows from overlapping after tiling with a borderwidth that is set to 1. But I can see how in a slightly different setup that could lead to the effect which you are describing. You could also try to set it to '$(($[vp.width/height] + 1 ))' for a test.

yikelu commented 12 years ago

Tried making those changes, including +1, neither fixed it. I'm currently ok with my workaround, although it is annoying.

Could be some idiosyncrasy of 2.6.3?

Edit: my specific workaround is to put the line

at the bottom of SwapWindows