-
-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FvwmPager not taking into account global screen dimensions when configured with DeskTopScale #223
Comments
Issue-Label Bot is automatically applying the label Links: app homepage, dashboard and code for this bot. |
@somiaj - one for you. Any thoughts? |
When initialising the pager, calculations such as DesktopScale were previously operating on just the monitor's x/y coordinates, yet the window itself is mapped then translated from the global width/height of all monitors. Maybe fixes #223
Hi @NsCDE, Please can you take a look at |
Hi @ThomasAdam This is for global desktop configuration ... With this change, FvwmPager is of the right size (after Restart when monitor is added) on both monitors and shows applications on right places for workspace 1 (desk 0). If I add
... at the end of configuration, it rightly shows only windows from the current pointer screen monitor, but geometry of the whole pager (aspect ratio) is still wide like for two monitors. P. S. |
Hi @NsCDE OK... Do you still get this problem if you hardcore the name of one monitor?
As for your other observation, please feel free to open an issue! |
Hi @ThomasAdam Problem with hardwiring RandR monitor name as I have tried now is issue topic by itself. I have Virtual-0 and Virtual-1 in test environment. If I use |
When initialising the pager, calculations such as DesktopScale were previously operating on just the monitor's x/y coordinates, yet the window itself is mapped then translated from the global width/height of all monitors. Maybe fixes #223
Hi @NsCDE, Yeah OK. I see what you mean. I have this:
With this config, on both If you remove the |
Hi @ThomasAdam I'm happy to help with RandR debugging, but I must admit I'm not using two monitors often with fvwm2, so the news that there is a bug with FvwmPager even on fvwm2 is news to me too. This about part of the pager window being dead ... I don't know how to reproduce this. I didn't had this situation. On what branch to test this? Currently I'm on master because I have tested FvwmButtons fix last. In this branch, FvwmPager is of one monitor size on primary and two monitors size on secondary screen, no matter if I remove or put back Columns and Rows options - it just changes XY matrix, but pattern of this bug remains. |
Hi Explicit RandR names of the monitors are now taken into account. However, either with explicit names or with $$[monitor.pointer], FvwmPager size is of the joined monitor 1 and 2 geometry (on both monitors). Windows on left or right monitor are properly shown[1] according to "Monitor" configuration option or it's absence. [1] That is, while other strange behaviours are not triggered. |
Additional info: |
When initialising the pager, calculations such as DesktopScale were previously operating on just the monitor's x/y coordinates, yet the window itself is mapped then translated from the global width/height of all monitors. Maybe fixes #223
When FvwmPager is launched without a "Monitor" config, it assumes the remit is global -- that is, it will show windows from all monitors. However, this could be at odds with the DesktopConfiguration setting. When FvwmPager performs tasks such as switching pages and/or desks, it does so by sending Fvwm commands directly. This includes monitor information which is not what's needed if DesktopConfiguration is global. Therefore, only send the monitor string across if FvwmPager is already tracking a specific monitor. Helps with #223
Hi @NsCDE, OK -- please have another look at
I've changed how FvwmPager commands are sent Fvwm with various monitor information. Hopefully it helps with this problem, although I suspect I've more to do yet. |
Hi @ThomasAdam It seems like windows are still appearing on wrong places. On RootWinShot.20200916.182554.png My pointer was on desk 2 (Three) page 0,0, and I started geeqie on monitor 1. When I started atril on second monitor, it was showed as it is on desk 0 (One). On RootWinShot.20200916.182824.png I was with pager on desk 3 (Four) and left monitor and called gwenview. It appeared on screen, but FvwmPagers shows it on desk 2 (Three). Screenshot RootWinShot.20200916.183209.png shows filezilla called on desk 3 (Four), but it appeared on desk 2 (Three) in FvwmPager. Screenshot RootWinShot.20200916.184207.png is the most interesting. I turned off pager and called it again on second monitor and It appeared on screen without any windows in it. WindowList was called with middle click on root screen for comparation. Screenshot RootWinShot.20200916.184315.png shows FvwmPager when called on left monitor immediately after that. It shows only one window - filezilla. WindowList is there for comparation. |
When "DesktopConfiguration global" is used, keep in sync the virtual_scr struct so that this doesn't clash for commands which assume per-monitor. Fixes #223
Hi @NsCDE, OK -- please take another look at the
For the test cases that I've used, I can't get things to break -- but do let me know how you get on. Thanks! |
When listing the new desk, don't try and compare a module's output, but rather reuse the existing fpmonitor_this() function. Fixes #223
Hi @ThomasAdam Please remind me what exactly to test here. After much debugging I must admint I'm bit lost. :-\
|
Hi @NsCDE Thanks. Feel free to open a separate topic for the positioning of windows when in global mode. With the recent changes to As for DesktopScale - I'll have to double check. |
When initialising the pager, calculations such as DesktopScale were previously operating on just the monitor's x/y coordinates, yet the window itself is mapped then translated from the global width/height of all monitors. Maybe fixes #223
Hi, FYI, I found some time now to test a bit ... and here are my observations: I can't find apps jumping in FvwmPager except sticky windows of course. It was hard to distinguish which was fvwm3 itself misbehaviour regarding #236 and what was FvwmPager itself, but now it looks like FvwmPager (and FvwmIdent) is more accurate than fvwm3. :-) The subject of this issue looks like is still present - scaled aspect ratio of single monitor is of both monitors. |
Hi @NsCDE, Hehehe -- thank you. I've split out the code between this issue and 236, so that this issue is just concentrating on the DesktopScale problem, and 236 is focusing on the "jumping windows". |
When initialising the pager, calculations such as DesktopScale were previously operating on just the monitor's x/y coordinates, yet the window itself is mapped then translated from the global width/height of all monitors. Maybe fixes #223
Hi @NsCDE, I'm trying to debug this issue. I know a lot of things have perhaps changed since you raised it last. If you have any time, would you mind testing against the latest |
Hi Thomas, As you said, a lot of things have changed. This bug still persists and we even have regression here, because line P. S. |
* Disable use of sizehints (they were mostly broken) to simplify code. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223.
Hi @NsCDE This should be fixed on the |
* Disable use of sizehints (they were mostly broken) to simplify code. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223.
* Removed sizehints from window geometry computation and no longer use width/height resize increments to simplify code. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global window size or monitor window size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global view port size or monitor size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global view port size or monitor size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
* Updated window size computational logic and formulas to deal with per-monitor vs global configurations. * Use either global view port size or monitor size (if monitor is set) to determine initial dimensions of pager if not set by user. Fixes #522. * Correctly use DeskTopScale (Scr.VScale) to determine window size if Geometry not set by user. Fixes #223. * Improved use of sizehints to set both minimum window size, and to preserve aspect ratio when resizing the pager. The aspect ratio is set to the initial size of the window unless the user sets window size with the Geometry option. * Manual page updates to state the how initial size works.
Hi @ThomasAdam Sorry for a delay. I have compiled current master where you merged this and tested this in global and per-monitor mode. It seems to be fixed for good. Didn't have a time to play with new "shared" mode ... see you more often on autumn hopefully. |
# Changelog ## [1.0.4](https://github.com/fvwmorg/fvwm3/tree/1.0.4) (2021-07-17) [Full Changelog](fvwmorg/fvwm3@1.0.3...1.0.4) **Breaking changes:** - Deprecate Label for FvwmPager [\#342](fvwmorg/fvwm3#342) - Extend \*FvwmIconMan:Resolution to include specific Desktop / Pager [\#455](fvwmorg/fvwm3#455) - Replace libbson with cJSON [\#408](fvwmorg/fvwm3#408) - FvwmButtons: Shrink windows when honoring Hints. [\#577](fvwmorg/fvwm3#577) ([somiaj](https://github.com/somiaj)) - Replace libbson with cJSON [\#571](fvwmorg/fvwm3#571) ([ThomasAdam](https://github.com/ThomasAdam)) - Add commands to configure the size/position window. [\#558](fvwmorg/fvwm3#558) ([ThomasAdam](https://github.com/ThomasAdam)) - Retire FvwmTile and FvwmCascade wrappers. [\#515](fvwmorg/fvwm3#515) ([somiaj](https://github.com/somiaj)) **Implemented enhancements:** - Set min. size for windows shown in pager [\#542](fvwmorg/fvwm3#542) - Moving windows: allow for "warping" to other windows in a given direction [\#540](fvwmorg/fvwm3#540) - Update monitor struct to know if monintor edges are OUTSIDE\_EDGE or INSIDE\_EDGE [\#523](fvwmorg/fvwm3#523) - Two issues with the WindowList [\#151](fvwmorg/fvwm3#151) - Feature Request: Enable using the 'c' unit with the "MinWindowSize" and "MaxWindowSize" styles [\#145](fvwmorg/fvwm3#145) - Allow per monitor EdgeCommand and EdgeLeaveCommand [\#582](fvwmorg/fvwm3#582) ([somiaj](https://github.com/somiaj)) - expand: add prev\_{desk,pagex,pagey} [\#579](fvwmorg/fvwm3#579) ([ThomasAdam](https://github.com/ThomasAdam)) - Improve translations [\#568](fvwmorg/fvwm3#568) ([somiaj](https://github.com/somiaj)) - Cleanup SetRCDefaults\(\) [\#567](fvwmorg/fvwm3#567) ([somiaj](https://github.com/somiaj)) - Add local configuration file to the default-config. [\#557](fvwmorg/fvwm3#557) ([somiaj](https://github.com/somiaj)) - Add icon for Run Command. [\#552](fvwmorg/fvwm3#552) ([somiaj](https://github.com/somiaj)) - Add command: Move shuffle \[flags\] direction\(s\) [\#550](fvwmorg/fvwm3#550) ([somiaj](https://github.com/somiaj)) - expand: add desk, pagex, pagey variables [\#539](fvwmorg/fvwm3#539) ([ThomasAdam](https://github.com/ThomasAdam)) - Add a screen option to the Scroll command. [\#531](fvwmorg/fvwm3#531) ([ThomasAdam](https://github.com/ThomasAdam)) - RandR: support RandRFunc for screen changes [\#525](fvwmorg/fvwm3#525) ([ThomasAdam](https://github.com/ThomasAdam)) **Fixed bugs:** - Pager do not show smalls windows in the correct place when snapped to the edge [\#541](fvwmorg/fvwm3#541) - EwmhBaseStruts glitch when using screen with different resolutions [\#66](fvwmorg/fvwm3#66) - Fvwm segfaults parsing module configuration [\#575](fvwmorg/fvwm3#575) - Swallowing FvwmPager inside FvwmButtons breaks resizing FvwmButtons when aspect ratio resizing is used [\#573](fvwmorg/fvwm3#573) - Move X Y Warp doesn't move pointer to window. [\#551](fvwmorg/fvwm3#551) - Maximize fullscreen command does not clear \_NET\_WM\_STATE\_FULLSCREEN when exiting fullscreen [\#545](fvwmorg/fvwm3#545) - EdgeLeaveCommand don't work or need a page change to work [\#543](fvwmorg/fvwm3#543) - FvwmPager Icon view fix background color. [\#537](fvwmorg/fvwm3#537) - FvwmPager with bad aspect ratio on dual-head display [\#522](fvwmorg/fvwm3#522) - AnimatedMove [\#513](fvwmorg/fvwm3#513) - Spelling errors found by lintian. [\#511](fvwmorg/fvwm3#511) - SnapAttraction: take into account individual monitors [\#466](fvwmorg/fvwm3#466) - FvwmPager not taking into account global screen dimensions when configured with DeskTopScale [\#223](fvwmorg/fvwm3#223) - FvwmPager: moving windows inside FvwmPager is inconsistent [\#198](fvwmorg/fvwm3#198) - Add force\_icons\_size kludge to .stalonetrayrc. [\#581](fvwmorg/fvwm3#581) ([somiaj](https://github.com/somiaj)) - Fix pass through binding logic. [\#570](fvwmorg/fvwm3#570) ([somiaj](https://github.com/somiaj)) - Make default-config greyed colorset grey. [\#566](fvwmorg/fvwm3#566) ([somiaj](https://github.com/somiaj)) - Cleanup FvwmScript manual page. [\#565](fvwmorg/fvwm3#565) ([somiaj](https://github.com/somiaj)) - GNOME: remove DO\_IGNORE\_GNOME\_HINTS [\#556](fvwmorg/fvwm3#556) ([lgsobalvarro](https://github.com/lgsobalvarro)) - Unmaximize: restore \_NET\_WM\_STATE [\#546](fvwmorg/fvwm3#546) ([ThomasAdam](https://github.com/ThomasAdam)) - Fix compiler warnings in modules/FvwmScript/Instructions.c [\#544](fvwmorg/fvwm3#544) ([pm215](https://github.com/pm215)) - Rework FvwmPager to move windows easier [\#536](fvwmorg/fvwm3#536) ([ThomasAdam](https://github.com/ThomasAdam)) - Move: disable working area when screen given [\#535](fvwmorg/fvwm3#535) ([ThomasAdam](https://github.com/ThomasAdam)) - Make RightPanel use primary monitor dimensions. [\#530](fvwmorg/fvwm3#530) ([somiaj](https://github.com/somiaj)) - Set base struts only for primary monitor in default-config. [\#528](fvwmorg/fvwm3#528) ([somiaj](https://github.com/somiaj)) - Change FvwmPager Logic for initial window size. [\#527](fvwmorg/fvwm3#527) ([somiaj](https://github.com/somiaj)) - EWMH\_GetWorkArea use monitor dimensions. [\#526](fvwmorg/fvwm3#526) ([somiaj](https://github.com/somiaj)) - Make SnapAttraction snap to edges of all monitors. [\#521](fvwmorg/fvwm3#521) ([somiaj](https://github.com/somiaj)) - Update FvwmCommand to allow multiple args. [\#514](fvwmorg/fvwm3#514) ([somiaj](https://github.com/somiaj)) **Merged pull requests:** - Extend FvwmIconMan Resolution configuration. [\#561](fvwmorg/fvwm3#561) ([somiaj](https://github.com/somiaj)) - Allow Min/Max WindowSize style to use client size [\#560](fvwmorg/fvwm3#560) ([somiaj](https://github.com/somiaj)) - Add more columns to default-config menu ItemFormat. [\#559](fvwmorg/fvwm3#559) ([somiaj](https://github.com/somiaj)) - Fix broken link. [\#529](fvwmorg/fvwm3#529) ([somiaj](https://github.com/somiaj)) - Spelling error fixes. [\#512](fvwmorg/fvwm3#512) ([somiaj](https://github.com/somiaj)) - Working on 1.0.4 [\#509](fvwmorg/fvwm3#509) ([ThomasAdam](https://github.com/ThomasAdam)) - module expand: don't overwrite previous expansion [\#576](fvwmorg/fvwm3#576) ([ThomasAdam](https://github.com/ThomasAdam)) - conditional: fix whitespace/comma parsing [\#572](fvwmorg/fvwm3#572) ([ThomasAdam](https://github.com/ThomasAdam)) - Configure a colorset for XDGMenu options. [\#564](fvwmorg/fvwm3#564) ([somiaj](https://github.com/somiaj)) - Menu: add option to grey entries out [\#563](fvwmorg/fvwm3#563) ([ThomasAdam](https://github.com/ThomasAdam)) - Remove \*FvwmPager: Label configuration option. [\#562](fvwmorg/fvwm3#562) ([somiaj](https://github.com/somiaj)) - move: Warp: move pointer to centre of window [\#553](fvwmorg/fvwm3#553) ([ThomasAdam](https://github.com/ThomasAdam)) - FvwmPager: Improvments with dealing with tiny windows on tiny pagers. [\#548](fvwmorg/fvwm3#548) ([somiaj](https://github.com/somiaj)) - PanFrame improvements [\#547](fvwmorg/fvwm3#547) ([ThomasAdam](https://github.com/ThomasAdam)) - pager: teach Icon view about colorsets [\#538](fvwmorg/fvwm3#538) ([ThomasAdam](https://github.com/ThomasAdam)) - placement: fix mouse positioning [\#533](fvwmorg/fvwm3#533) ([ThomasAdam](https://github.com/ThomasAdam)) - EdgeScroll: a few improvements [\#524](fvwmorg/fvwm3#524) ([ThomasAdam](https://github.com/ThomasAdam)) - Update manual for Echo/EchoFuncDefinition [\#520](fvwmorg/fvwm3#520) ([somiaj](https://github.com/somiaj)) - release: remove dev-docs from release tarball [\#518](fvwmorg/fvwm3#518) ([ThomasAdam](https://github.com/ThomasAdam)) - configure: remove stale references to BUGADDR [\#517](fvwmorg/fvwm3#517) ([ThomasAdam](https://github.com/ThomasAdam)) - Configuration tweaks [\#516](fvwmorg/fvwm3#516) ([ThomasAdam](https://github.com/ThomasAdam)) - build: add CHANGELOG.md to dist [\#510](fvwmorg/fvwm3#510) ([ThomasAdam](https://github.com/ThomasAdam))
Hi,
Testing continues ...
DesktopConfiguration: (implicit global)
FvwmPager in this configuration scales wrongly on primary, but correctly on secondary display. It is not called as transient but permanent pager with mouse action on root window menu. Restart of FVWM doesn't have impact on change.
Visualisation: Screenshot1.png is primary display Virtual-0, Screenshot2.png is secondary display. Same function called from menu with same configuration (above) but on another screen.
Sub-test:
If I append directive "*GlobalPager: Monitor $$[pointer.screen]" in configuration, dimensions of the pager are correct when called with pointer on primary screen and no windows from secondary screen are shown. If called with pointer on secondary screen, only applications from that screen are shown, but window geometry extends across both monitors, which is not the case if it is called from a primary monitor.
The text was updated successfully, but these errors were encountered: