-
-
Notifications
You must be signed in to change notification settings - Fork 81
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
Two PanFrame/EdgeScroll issues. (Regression cf. FVWM2.) #459
Comments
When handling paging, seaprate out the logic more distinctly for where the pointer should end up when panning; sometimes, the cursor would end up near the middle of two displays which is fine for per-monitor mode, but not for global. Fixes #459
When handling paging, seaprate out the logic more distinctly for where the pointer should end up when panning; sometimes, the cursor would end up near the middle of two displays which is fine for per-monitor mode, but not for global. Fixes #459
When paging is initiated through the use of panframes, they are mapped and unmapped accordingly. When `DesktopConfiguration` is in `global` mode (the default), the global state aggregated across all monitors is updated. This update didn't include the state of panwindows, which meant that once someone had caused paging to happen enough time, panframes which should have been mapped weren't. Fixes #459
Hi @taobert Thanks for the bug report. I really appreciate the level of detail you've provided, thanks for that. Please can you take a look at the |
Looks good. |
Hi @taobert Thanks -- let me know either way, and if things look good, I'll merge this tomorrow. If you can, could you check how |
I'll have to read up on how |
I'm merging this change in -- been using it every day for the past week. Any problems, please open a separate issue. |
When paging is initiated through the use of panframes, they are mapped and unmapped accordingly. When `DesktopConfiguration` is in `global` mode (the default), the global state aggregated across all monitors is updated. This update didn't include the state of panwindows, which meant that once someone had caused paging to happen enough time, panframes which should have been mapped weren't. Fixes #459
Yes, i'm sorry for not replying earlier, i've come down with a bout of real life. Business arisingHowever, FWIW, i think the documentation for Even with
Additionally, the fact that separate pagers are required for each screen makes it convoluted to Some asidesThe advice here to put
|
That's OK. Hope all is well.
Excellent.
Patches welcome if you feel the documentation needs improving.
The two things are decoupled from one another -- I agree that it can be confusing if you have a FvwmPager showing all monitors and switching pages. One approach we could take here is to detect when the pager is showing everything across monitors and draw in the monitor boundaries on the pager window -- in much the same way that we do for the boundaries between desks/pages. The only downside here is that unless you've configured FvwmPager to match your RandR layout, then it might look odd. What I am loathe to do is make FvwmPager behave differently when
It might look like that, but only because it's drawing all windows on the root window across monitors. Per my earlier suggestion, we could add in monitor boundaries to the pager. Or do something else, if you can suggest something?
If you spend time on the documentation, I'd be very happy to review it if you feel it's not descriptive enough.
See: #198
See #198
Yes -- there's not much I can do about this, unfortunately. Much like pages, the windows between them are merely moved out of the way when the root window is dragged. This works fine when desktops aren't per-monitor, but things look awkward when per-monitor mode is in use.
Well, they're not required per-se, it's depends whether you set
Yeah -- again, we could maybe look at using some sort of screen resistance.
See above; I agree.
They're by no means unordered (see: https://www.mail-archive.com/fvwm@lists.math.uh.edu/msg16494.html), however in the case of
I don't think it does now.
Thanks, will update. |
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
)current master:
Debian Sid
Expected Behaviour
Mousing off the edge of a page should place the mouse cursor at the near edge of the adjacent page.
Actual Behaviour
Issue 1: With multiple monitors, mousing off the edge of a page places the cursor at the boundry between two monitors.
Issue 2: It's possible to make FVWM3 confused about where PanFrames should be, breaking mouse scrolling.
Steps to Reproduce
Issue 1
I have two monitors side by side:
Using the attached MWE config file, with FVWM2, edge scrolling works correctly:
When i move past the right edge of the right-hand monitor (DVI-D-0)
the mouse pointer is now at the left edge of the left-hand monitor (DP-0).
In FVWM3 however, scrolling off the right edge of DVI-D-0 places
the mouse pointer at the left edge of DP-0 (edit: i mean DVI-D-0) (the right-hand monitor).
This means that when i accidentally push past the edge resistance,
i need to go much further back to get to where i wanted to be.
When i mock up screens arranged vertically:
and restart FVWM, FVWM2 again behaves correctly, but interestingly,
FVWM3 gets it correct when moving down, but when moving up from DP-0,
the mouse pointer is (incorrectly) at the bottom of DP-0.
Issue 2
During this testing, i've also found a second issue,
which is possibly subordinate to the first, and/or possibly a duplicate of #381:
Mouse page scrolling can be broken in certain circumstances,
possibly because
PanFrames
get misplaced.After orienting the monitors horizontally again:
and restarting (now on page 0x0, on DP-0), the log shows no
is_pan_frame
messages at the left of DP-0,or the top of DP-0 or DVI-D-0.
Mousing up and down in DP-0 scrolls pages correctly,
and shows the
PanFrames
at the correct place (between pages).However, if i scroll down on DP-0 and then back up on DVI-D-0, now although i'm on page 0x0,
the log shows that there is a PanFrame at the top of both screens, and not at the bottom.
This means that i'm unable to scroll back to the lower page with the mouse.
Likewise, mousing right from page 0x0 to 1x0 and then back again,
causes a PanFrame to be at the LHS of DP-0, and no PanFrame to be at the RHS of DVI-D-0,
so now page scrolling to the right doesn't work.
Using either of these to break scrolling in one direction,
corrects the PanFrame placement in the orthogonal direction,
and re-enables scrolling in that direction.
Changing page with the keyboard in the direction that the scrolling is stuck
(
Alt-[hjkl]
in the provided config) puts the PanFrame back where it should be.As with #381, the mouse will still scroll if it's dragging a window,
despite the PanFrame apparently not being at the page boundary (according to the logfile).
Note in the attached log that after we mouse down on DP-0 (1615083799.770354)
and up on DVI-D-0 (1615083806.146475), we're back on page 0x0.
Mousing to the bottom of the screen no longer produces messages.
Mousing to the top of the screen produces
handled paging for ... (0)
.Am i correct in assuming the
(1)
or(0)
inhandled paging
messages is success or failure?No.
Does Fvwm3 crash?
No.
Extra Information
fvwm3-output.log.txt
config.mwe.txt
The text was updated successfully, but these errors were encountered: