fvwmorg/fvwm3

FvwmPager does not notice virtual desktop size changes

Closed this issue · 12 comments

Thanks for reporting your bug here! The following template will help with
giving as much information as possible so that it's easier to diagnose and
fix.

Upfront Information

Please provide the following information by running the command and providing
the output.

  • Fvwm3 version (run: fvwm3 --version)

fvwm3 1.1.0 (1.0.9-15-g4af6dbe6)

  • Linux distribution or BSD name/version

Archlinux

  • Platform (run: uname -sp)

Linux unknown

Expected Behaviour

When switching monitors on or off through xrandr/arandr, fvwm3 notices the changes and acts as needed (good job there!) but FvwmPager doesn't. Specifically, the sizes of the individual desktops in a larger virtual desktop do not change. A restart fixes things.

Actual Behaviour

FvwmPager should change the size of the individual desktops and the global virtual desktop as needed. Moving windows around when they end up fully outside of the virtual desktop, or when their geometry is relative to the borders, is left as an exercise to the reader.

  • Does the problem also happen with Fvwm2?

fvwm2 ends up utterly confused when the monitor configuration changes. fvwm3 is infinitely better in this regard.

This should be fixed via #978

That didn't work out, or at least not entirely.

Here is my final monitor configuration:
monitors

Starting from single-monitor (eDP-1), the pager looks like that:
pager-1a which is correct (DeskTopSize 4x4).

After switching on the other two monitors, it ends up like that:
pager-2a . It also refuses moving between virtual desktops at this point, thinking it's 1x1 I guess?

Then after reload things are back to normal:
pager-3a

It may just be an issue with DesktopSize being lost at some point though.

Are you trying this with 1.1.0? I can't reproduce this. I start with a single monitor running, and I then enable my second monitor, and here the pager updates its sizes for both monitors and the page grid is still visible. I'm not quite sure what could be happening on your end.

Instead of restarting fvwm, if you can reproduce this, see if issuing DesktopSize 3x3 and then DesktopSize 4x4 to see if the pager gets the update, in this case something with loosing track of the number of pages in your setup.

1.1.0-1-g5b82cba6

I'm not sure how I issue something when live?

You can use FvwmPrompt, FvwmConsole, or FvwmCommand.

I think what is happening is when you add new monitors, their info gets sent to the pager before their number of pages is setup, and thus the pager thinks you only have a desktop size of 1x1 which explains what you see and why it acts like there is only one page. Issuing the DesktopSize commands should refresh the pager's understanding (my theory) of how many pages there are, without having to restart fvwm. I still can't reproduce this, so unsure what is triggering the pager thinking your desktop size is only 1x1.

FvwmCommand 'DesktopSize 4x4' resets the pager to normal. So yeah, the size is lost somewhere.

My .fvwm2rc just in case.
fvwm2rc.txt

Well you now have a temporary fix, there is a RandRFunc you can use to help you until we track down the issue in fvwm. Try this.

DestroyFunc RandRFunc
AddToFunc RandRFunc I DesktopSize 4x4

that should send a desktopsize command with monitor changes, maybe it can help your issue.

Something maybe unusual about my layout is that when I activate the other two monitors, eDP-1 is not top left nor primary anymore. Dunno if your testing is similar.

I don't think it is your layout, I think it is something else, maybe a race condition. I did try activating a monitor to the left instead of to the right. Anyways, we have enough info for now as to what might be the cause, hopefully the RandRFunc can at least make things work better for you until we track the issue down.