Le 10/04/2023 à 02:10, Stefan Monnier a écrit :
I just tested using virtualbox and the following setup:
Screen 0: minimum 64 x 64, current 1440 x 600, maximum 32766 x 32766
VGA-0 connected 800x600+640+0 0mm x 0mm
800x600 60.00*+ 60.00*
VGA-1 connected primary 640x480+0+60 0mm x 0mm
640x480 60.00*
which should match yours, and it works as expected.
Hmm...
Could you recompile with DEBUG macro set to 1, and copy/paste the message
printed here:
https://github.com/fullermd/ctwm-mirror/blob/master/ctwm_main.c#L459-L462
For me it prints:
Layout: [monitors=[len=2 cap=2 [x=0 y=335 w=1600 h=1200] [x=1600 y=0
w=1200 h=1920]]
horiz=[len=3 cap=3 [x=0 y=335 w=2800 h=1200] [x=1600 y=0 w=1200 h=335]
[x=1600 y=1535 w=1200 h=385]]
vert=[len=2 cap=2 [x=1600 y=0 w=1200 h=1920] [x=0 y=335 w=1600 h=1200]]]
That looks very much like yours :-(
FWIW, the fact that ctwm's notion of "top" for the right most monitor is
"off" affects not only `f.zoom` but also `f.move` (it "bumps"
against the "wrong top" , so I have to "push" harder in order to move
windows above the "wrong top").
Yes all these features are related to the layout, so it is "normal" they
also fail.
Perhaps do you use the new MonitorLayout variable?
If not, could you share your config (at least in mp)? so I can try to
reproduce the problem.
Hmm...
I haven't looked at ctwm's code in over a decade and never played with
that part of the code, so if you have suggestion as to where I should
look, that would be helpful.
You can add some logs in RLayoutFullVert1 function in r_layout.c
(backend for f.zoom):
RLayoutFullVert1(const RLayout *self, const RArea *area)
{
fprintf(stderr, "RLayoutFullVert1, layout: ");
RLayoutPrint(self);
fprintf(stderr, "area: ");
RAreaPrint(area);
// Let RLayoutFull1() find the right monitor.
RArea target = RLayoutFull1(self, area);
int max_x, min_x2;
fprintf(stderr, "target: ");
RAreaPrint(&target);
Do you use Xrandr rotation for HDMI-1?
I didn't succeed to test monitor rotation using virtualbox...
Yes.
Interesting.
++
Max.