Skip to content

Page navigation and selection is incorrect after FVWM3 restart/start while two screens are enabled #23

Closed
@NsCDE

Description

@NsCDE

Continuation from #20 ...

Testing function f_TestSDP works ok in one screen mode, in two screens mode it is working ok if second screen is added during FVWM3 session with xrandr, but if FVWM3 is restarted (or logout + login with secondary screen on), pages are still shifted: after f_TestSDP, on "0 0" there is nothing. On "0 1" tthere is "0 0", on "1 0" there is "0 1", and on "1 1" there is "1 0" - after another Restart, xterm from desk 3, page "1 1" is positioned on desk 0, page "0 0" but iconified. Same behaviour is observed in global and per-monitor mode. If second screen is forced --off with xrandr and FVWM3 restarted, f_TestSDP works again - until FVWM3 is restarted with secondary screen on. This occurs no matter on which page I'm positioned with terminal from which I call f_TestSDP. Screenshot attached here shows window list on Virtual-0 after running f_TestSDP in such conditions. In working state, window list is correct. Probably some buffer must be cleared or shifted back ... you will see this from the order on window list.

This is stderr output during right page selection (no restart):

[fvwm][Echo]: Performing for Screen Virtual-0 ('Virtual-0') ...
monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
sh: pointer.screen: syntax error: invalid arithmetic operator (error token is ".screen")
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 0, Vy: 2100
EdgeScrollX: 1400, EdgeScrollY: 1050
CurrentDesk: 0
CurrentPage: {x: 0, y: 2}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
sh: pointer.screen: syntax error: invalid arithmetic operator (error token is ".screen")
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 2800, Vy: 0
EdgeScrollX: 1400, EdgeScrollY: 1050
CurrentDesk: 0
CurrentPage: {x: 2, y: 0}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
sh: pointer.screen: syntax error: invalid arithmetic operator (error token is ".screen")
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 2800, Vy: 2100
EdgeScrollX: 1400, EdgeScrollY: 1050
CurrentDesk: 0
CurrentPage: {x: 2, y: 2}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

This is stderr output during wrong page selection (after restart):

[fvwm][Echo]: Performing for Screen Virtual-0 ('Virtual-0') ...

Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 0, Vy: 0
EdgeScrollX: 2800, EdgeScrollY: 2100
CurrentDesk: 0
CurrentPage: {x: 0, y: 0}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 0, Vy: 2100
EdgeScrollX: 2800, EdgeScrollY: 2100
CurrentDesk: 0
CurrentPage: {x: 0, y: 2}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 2800, Vy: 0
EdgeScrollX: 2800, EdgeScrollY: 2100
CurrentDesk: 0
CurrentPage: {x: 2, y: 0}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)
sh: pointer.screen: syntax error: invalid arithmetic operator (error token is ".screen")
monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
Monitor Debug
number of outputs: 2
Name: Virtual-0
Disabled: false
Is Primary: no
Is Current: yes
Wants Refresh: false
Output: 67
Coords: {x: 0, y: 0, w: 1400, h: 1050}
VirtScr: {
VxMax: 5600, VyMax: 4200, Vx: 2800, Vy: 2100
EdgeScrollX: 2800, EdgeScrollY: 2100
CurrentDesk: 0
CurrentPage: {x: 2, y: 2}
MyDisplayWidth: 1400, MyDisplayHeight: 1050
}
Desktops: yes
Flags:per-monitor

monitor_by_name: couldn't find monitor: (c)
monitor_by_name: returning current monitor (Virtual-0)
__place_window: assigned fw to: 0 (Virtual-0)

I can see no difference in this outputs.

If I turn the order in which I walk pages in f_TestSDP from "1 1" to "0 0", first page executed seems to be the one that appears empty.

Metadata

Metadata

Assignees

Labels

type:bugSomething's broken!

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions