lxqt / lxqt-panel

The LXQt desktop panel
https://lxqt-project.org
GNU Lesser General Public License v2.1
180 stars 135 forks source link

Detection of overlapping windows for autohide stopped working across all virtual desks except for the first (leftmost) one #2064

Closed dumblob closed 4 months ago

dumblob commented 4 months ago
Expected Behavior

Upgrade from the QT5 version to QT6 version should maintain the same behavior in detecting overlapping windows on virtual desktops.

Current Behavior

After upgrade of the lxqt-panel from QT5 version to QT6 version, the "Hide only on overlapping a window" option stopped working for all virtual desktops except for the first one.

Possible Solution

Revert the overlapping detection algorithm to the old variant?

Steps to Reproduce (for bugs)
  1. make the lxqt-panel hide automatically
  2. tick the option "Hide only on overlapping a window"
  3. switch to any virtual desktop except for the first one
  4. maximize some window
  5. observe, the panel does NOT autohide even though it should
Context

It really is interesting this works flawlessly for the first (leftmost) with any window of any application I have tried. For other virtual desktops though it does not :cry:.

System Information
tsujan commented 4 months ago

Not reproducible. Actually, I use that feature, and it works here like before.

make the lxde-panel hide automatically

Is that a typo, or did you really mean "lxde"?

Revert the overlapping detection algorithm to the old variant?

No algorithm has changed.

stefonarch commented 4 months ago

Which is window manager?

EDIT: tested with kwin and openbox, can't reproduce either.

dumblob commented 4 months ago

I use FVWM as the window manager.

Before I used this feature for almost 2 years with no issues whatsoever (and regular updates to the latest lxqt-panel). Only now after updating to the QT6 version (I noticed because the visual theme looked quite wrong - and I had to configure it with qt6ct instead of qt5ct as I was used to) this stopped working for me.

Note I always start with 1 virtual desktop and then add second, third, etc. on demand during runtime (i.e. only after I started lxqt-panel). So I hope the algorithm did not change to "save" the initial number of virtual desktops and blindly use it since then.

dumblob commented 4 months ago

@tsujan could you please reopen? I think coming to conclusions here is very premature. Thanks!

lxde-panel -> lxqt-panel was of course a typo (teaching an old dog new tricks is tricky :wink:).

tsujan commented 4 months ago

Closing an issue doesn't mean it'll be forgotten; it might be reopened if it can be reproduced after adding more info to it.

I closed it because nothing has changed except for porting to Qt6. I also tested it with KWin and xfwm4.

EDIT: @stefonarch tested it with Openbox too, although any problem with Openbox would be related to Openbox because it's dead.

tsujan commented 4 months ago

Note I always start with 1 virtual desktop and then add second

Thanks for the additional info. Right now, I also tested that with KWin, and the auto-hiding panel worked OK in the new workspace too. Not only it was made hidden by maximized windows, but also by any kind of overlapping, like shading and unshading.

stefonarch commented 4 months ago

Note I always start with 1 virtual desktop and then add second, third, etc. on demand during runtime (i.e. only after I started lxqt-panel).

If you restart the panel (in Session Settings) after adding one does it work?

tsujan commented 4 months ago

If you restart the panel (in Session Settings) after adding one does it work?

If it does, then FVWM doesn't announce addition of workspaces like it did before, or probably KF6 doesn't receive it from FVWM anymore. Both cases are out of our control.

However, a more important info could be that whether @dumblob sees the same thing with other WMs.

dumblob commented 4 months ago

Hi both, thanks for such prompt reactions and your precious time!

I did not have lxqt-session installed (I am always running lxqt-panel from my startup script). Now I have installed it, ran lxqt-session (and it successfully rans and shows icons on my desktop).

Then I ran lxqt-config-session and tried to "Stop" lxqt-panel but it had no effect. Then I have killed lxqt-panel from terminal and tried the "Start" button in lxqt-config-session but that also did not have any effect.

I will try now some other wm. Thanks a lot for the various ideas!

tsujan commented 4 months ago

Then I ran lxqt-config-session and tried to "Stop" lxqt-panel but it had no effect.

I'm afraid that shows that, in your case, the panel has been started by another method, before lxqt-session can start it. Please find and disable it. Also make sure you disable qt6ct when running an LXQt session (logging out and in is required).

stefonarch commented 4 months ago

Then I ran lxqt-config-session and tried to "Stop" lxqt-panel but it had no effect.

Maybe startlxqt wasn't used here?

dumblob commented 4 months ago

Indeed, I am not using "startlxqt" (for years).

I have now spent some time returning back to the previous versions (FVWM 1.0.7.r16.gb454ca0c4, lxqt-panel 1.4.0, QT 5) but I am still unable to make it work. Hence I now suspect some of the libs lxqt-panel is using must have started working differently. I have already checked KX11Extras as some of the methods are being used to iterate over windows on the given desktop and then run .intersects() between the two QRects. So far no luck but I will dig deeper.