Skip to content
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

RaiseLower only Lowers windows in per-desktop mode in certain conditions #86

Closed
NsCDE opened this issue May 22, 2020 · 3 comments · Fixed by #91
Closed

RaiseLower only Lowers windows in per-desktop mode in certain conditions #86

NsCDE opened this issue May 22, 2020 · 3 comments · Fixed by #91
Assignees
Labels
type:bug Something's broken!
Milestone

Comments

@NsCDE
Copy link
Contributor

NsCDE commented May 22, 2020

Branch: master

If I have terminal on monitor Virtual-0, desk 0, and start "someapp" on monitor Virtual-1, desk 2, and then move it with mouse to Virtual-0, it will change desk to desk 0. I can use RaiseLower builtin function to lower it if it covers app which has been initially on Virtual-0, but raise part doesn't function: it is like window moved from Virtual-1 to Virtual-0 is on the "top" layer, with exception that I can lower native window (but not raise over newcomer window again too).

This doesn't manifests if same desk is on both monitors while moving windows.

EDIT: Additionally, in FvwmIdent, info about desk of the window moved between monitors/desks is not changed, monitor is.

@ThomasAdam ThomasAdam added this to the 1.0 milestone May 22, 2020
@ThomasAdam ThomasAdam added the type:bug Something's broken! label May 22, 2020
@ThomasAdam ThomasAdam self-assigned this May 22, 2020
ThomasAdam added a commit that referenced this issue May 23, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps #86
@ThomasAdam ThomasAdam linked a pull request May 23, 2020 that will close this issue
@ThomasAdam
Copy link
Member

ThomasAdam commented May 23, 2020

Hi @NsCDE,

Thanks for this. I presume the window you were moving between desk not updating correctly on FvwmIdent was due to StartsOnDesk style? That's certainly how I was able to reproduce this. Please take a look at the ta/gh-86 branch which should address this problem. I've also fixed a bug in this which was causing FvwmPager not to update correctly.

As to your RaiseLower problem, I'll take a look now...

ThomasAdam added a commit that referenced this issue May 23, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps #86
ThomasAdam added a commit that referenced this issue May 23, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps #86
ThomasAdam added a commit that referenced this issue May 23, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps #86
ThomasAdam added a commit that referenced this issue May 24, 2020
When deducing if the windows in the stack ring should be compared
against, only consider those windows on the same monitor as the current
window.

Fixes #86
@ThomasAdam
Copy link
Member

Hi @NsCDE,

I suspect the RaiseLower problem has been fixed because the desk wasn't switched correctly between desks. That said, I have made a tiny correction to the window checking for different layers, so I'm hoping that you'll find both your reported issues fixed on ta/gh-86.

Let me know how you get on.

@NsCDE
Copy link
Contributor Author

NsCDE commented May 27, 2020

Hi Thomas,

Sorry for the delay, I had lot of work this days.

Just to confirm: I have tested, both RaiseLower and FvwmIdent are now behaving fine. You can close this issue I think.

ThomasAdam added a commit that referenced this issue May 27, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps #86
ThomasAdam added a commit that referenced this issue May 27, 2020
When deducing if the windows in the stack ring should be compared
against, only consider those windows on the same monitor as the current
window.

Fixes #86
mikeandmore pushed a commit to mikeandmore/fvwm3 that referenced this issue Nov 28, 2020
Previously, when StartsOnDesk was used, although the desk was correctly
set, the desk would never change thereafter, once the window was moved.

This was because the UPDATE_FVWM_SCREEN macro assumed it could always
update the window, but never took into account that when moving
monitors, the desk also needed to be changed.

But this can't blindly happen in all cases, as on initla mapping of the
window, the UPDATE_FVWM_SCREEN macro would have overriden the
StartsOnDesk style.

This change introduces a flag to track this as well as reducing the
number of assigments which weren't needed when updating the screen.
Also removed an extraneous assignment.

Helps fvwmorg#86
mikeandmore pushed a commit to mikeandmore/fvwm3 that referenced this issue Nov 28, 2020
When deducing if the windows in the stack ring should be compared
against, only consider those windows on the same monitor as the current
window.

Fixes fvwmorg#86
@ThomasAdam ThomasAdam moved this to Done in FVWM3 Sep 18, 2022
@ThomasAdam ThomasAdam added this to FVWM3 Sep 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Something's broken!
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants