! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
4.13: Panel placed incorrectly when monitor configuration changes
Status:
RESOLVED: MOVED
Product:
Xfce4-panel

Comments

Description Klaus Kusche 2017-06-03 17:38:49 CEST
The size of my screen changes several times a day:
1920x1080 in laptop-only mode
1920x1200 when the monitor at my office is connected to the laptop
2560x1600 when my monitor at home is connected to the laptop
1024x768 when I'm presenting in a lecture hall with a VGA beamer

(The external monitors are not arranged side-by-side to the internal laptop
display, but on top of it: All outputs have upper left corner +0+0.
In the VGA configuration, the internal display is also reduced to 1024x768.
In the monitor configurations, the internal display remains 1920x1080
and shows only the upper part of the screen).

I've a panel at the bottom of my screen.
Up to 4.12, this panel always moved to the lower edge of the screen
automatically, without any manual intervention, no matter what the size was.
With 4.13, it does not:
When the screen is smaller than before, the panel moves up to the new lower edge, but when the screen is larger than before (i.e. when starting a session 
on an external monitor), the panel does not move down to the new lower edge 
of the screen but is displayed somewhere in the middle of the screen
and needs to be dragged to the lower edge manually.

How can I configure the panel to stay at the lower edge of the screen,
even when the monitor configuration changes, as it always did before?
Comment 1 Simon Steinbeiss editbugs 2017-06-12 00:45:19 CEST
It is possible that this is because we implemented support for RandR's "primary monitor" feature.

When you have multiple displays connected you can select (in the panel's preferences dialog) which output you want to use. The previous default was "automatic" - you can try to set it to that and see if it changes things back to how you want them.
Comment 2 Klaus Kusche 2017-06-14 18:21:13 CEST
As far as I can tell after a quick test, "automatic" seems to work.
However, I could only test 1 of 5 possible monitor configurations
(the one I use at home - I'm neither in my office nor in the lecture halls this week).

All the other settings offered in the panel's preference dialog 
don't make sense at all for my environment:

* The only permanent output and the only one present at boot
is the laptop display. However, this display is completely ignored 
as soon as a beamer or an external display is connected,
so fixing the panel's position to it is definitely a bad idea
(and ends up with the panel in the middle of the external display
if the external display has higher resolution than the laptop).

* I can't select an output for the external display or the beamer in the panel's preferences:
The output changes depending on the kind of connection used (HDMI, VGA, docking station, Display Port or DVI).

* There is no primary display defined in my settings,
redefining it all the time would be too much mess.
Comment 3 Simon Steinbeiss editbugs 2017-06-15 16:45:43 CEST
Ok, then let me know whether it also works in your other setups.

Your other input mostly tells me that the primary option doesn't help you much (there are several scenarios though where it does come in handy), but since the automatic option is still there, there's nothing to worry about.
Comment 4 Klaus Kusche 2017-06-19 19:45:12 CEST
(In reply to Simon Steinbeiss from comment #3)
> Ok, then let me know whether it also works in your other setups.

It mostly works, but it's not yet perfect:

The panel at the lower edge of the screen correctly moves up and down vertically
when the screen height is reduced or increased: 
it always stays at the lower edge of the screen, as it should.

However, my panel is not full-width, but only as wide as needed and centered.
Unfortunately, it is not re-centered when the screen width changes,
but stays at its previous horizontal position:
In my case, it is centered at Full HD (native size of the laptop's internal screen, 1920x1080).
When I connect to a VGA beamer and reduce my whole screen to 1024x768,
the panel moves to the lower right corner (trying to maintain its previous x-position),
and when I connect to my display at home and set the screen to 2560x1600,
the panel positions itself significantly left of the center of the lower edge.

As it is an auto-hiding, normally invisible panel,
this makes the panel hard to find with the mouse.

If I remember correctly, the previous version recentered the panel on resolution changes.
Comment 5 Simon Steinbeiss editbugs 2017-06-19 20:07:40 CEST
Are you sure this was not also the case with the 4.12 panel? None of the porting should cause a change in behavior like this.

If you could please confirm this works for you with 4.12 I can investigate further.
Comment 6 Klaus Kusche 2017-06-19 20:35:57 CEST
(In reply to Simon Steinbeiss from comment #5)
> Are you sure this was not also the case with the 4.12 panel? None of the
> porting should cause a change in behavior like this.

No, I'm not sure. I think the old panel recentered itself, but I'm not sure.

But it definitely would be useful.

> If you could please confirm this works for you with 4.12 I can investigate
> further.

Sorry, Gentoo package dependencies don't allow me to downgrade the panel:
According to the dependencies in the gentoo packages,
downgrading to panel 4.12 requires garcon built with gtk2.
However, it's not possible to install two different garcon packages at the same time,
and I have several xfce 4.13 packages installed which need garcon with gtk3.
Hence, the gentoo package manager refuses to downgrade to a 4.12 panel.
Comment 7 Simon Steinbeiss editbugs 2017-06-19 22:41:22 CEST
OK, let's try something else then. Could you please run the panel with

PANEL_DEBUG=1 xfce4-panel

from the terminal? Then you should see a lot of geometry-relevant information that should help us to figure out how to improve this.
Comment 8 Klaus Kusche 2017-06-20 08:00:55 CEST
(In reply to Simon Steinbeiss from comment #7)
> OK, let's try something else then. Could you please run the panel with
> 
> PANEL_DEBUG=1 xfce4-panel
> 
> from the terminal? Then you should see a lot of geometry-relevant
> information that should help us to figure out how to improve this.

I didn't start the panel from the terminal, 
but added PANEL_DEBUG=1 to my login environment and logged in as usual.

There are 3 panels:
One centered at the top edge, one centered at the left edge, one centered at the bottom edge.
Moreover, there are two displays:
eDP-1 (Laptop internal) with native 1920x1080 and DP-3 (external) with native 1920x1200.
After login, they are side by side.

What I did:
* Moved the external display on top of the internal display,
resulting in a 1920x1200 screen.
Panels are approximately where they should be,
except for the lower-edge panel, which is not exactly centered,
but a little bit right of the center.
* Set the internal display to 1024x768 
(does not move the panels, because the screen is still 1920x1200).
* Disabled the external display.
This resizes the screen to 1024x768 and repositions all three panels.
Upper and lower edge panel are now right-corner instead of centered.
* Re-enabled the external display, setting the screen back to 1920x1200.
This repositions the lower-edge panel to the initial x and y position
it had before shrinking the screen.
However, it does not reposition the other two panels,
they stay at the position they were moved to for 1024x768:
The upper-edge panel is now in the left half of the upper edge instead of centered,
and the left-edge panel is now in the top half of the left edge instead of centered.
Comment 9 Klaus Kusche 2017-06-20 08:02:41 CEST
Created attachment 7185 
.xinitrc.log with panel debug output
Comment 10 haarp 2017-09-06 09:05:53 CEST
Do you use multiple monitors individually, or do you have them overlap?

When they overlap, and the panel wants to stay on the smaller monitor, it makes sense that you see it floating in the middle on the larger monitor. Undesirable, but a consequence of having overlap.

If you set it to appear on the primary monitor, and switch the primary monitor around when adding a new monitor, the panel should also move to the bottom of the new monitor.
Comment 11 Klaus Kusche 2017-09-09 11:41:59 CEST
(In reply to haarp from comment #10)
> Do you use multiple monitors individually, or do you have them overlap?

As I said in the initial description, they overlap:
All displays have the same upper left corner, but different size.

I switch between three different situations several times a day:

* Laptop-only: 1920x1080 internal display only

* Lecture:
Identical screen contents on
1024x768 internal display + 1024x768 VGA beamer
or
1920x1080 internal display + 1920x1080 HDMI beamer

* Office or home:
All work is done on the external monitor only (2560x1600 DP or 1920x1200 DVI).
The 1920x1080 internal display is on, but screen contents on the internal display is irrelevant.

In all cases, there is a single logical screen with screen size identical to the larger display
(1920x1080, 1024x768, 1920x1200 or 2560x1600),
i.e. the logical screen size is changed whenever the monitor configuration changes.

> When they overlap, and the panel wants to stay on the smaller monitor, it
> makes sense that you see it floating in the middle on the larger monitor.
> Undesirable, but a consequence of having overlap.
> 
> If you set it to appear on the primary monitor, and switch the primary
> monitor around when adding a new monitor, the panel should also move to the
> bottom of the new monitor.

As I said above, setting a primary monitor each time would be too much effort.

Currently, my 4.13 panels (one at the top, one at the left edge, one at the bottom)
in "automatic" mode are correctly repositioned to the edge whenever the screen size changes
(and no longer float around in the middle of the display), so the main problem is solved.

However, the minor problem still remains:
All three panels are shorter than the corresponding edge and initially centered,
but they are *not* automatically re-centered to the middle of the corresponding edge
when the screen size changes.

When switching to VGA beamer mode, the top and bottem panel
end up at the rightmost part of their edge instead of being centered,
and the left panel is in the lower half of the left edge.

When going back from VGA to normal, or when attaching to the 2560x1600 display,
the top and bottom panel are left of the center, and the left panel is in the upper half
of the left edge.

As the panels are all auto-hide, this makes them hard to target with the mouse.

I think in automatic mode they should simply be re-centered whenever the screen size changes.
Comment 12 Git Bot editbugs 2020-05-28 02:02:39 CEST
-- GitLab Migration Automatic Message --

This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/168.

Please create an account or use an existing account on one of our supported OAuth providers. 

If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests

Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev

Bug #13620

Reported by:
Klaus Kusche
Reported on: 2017-06-03
Last modified on: 2020-05-28

People

Assignee:
Nick Schermer
CC List:
2 users

Version

Version:
4.13.0

Attachments

.xinitrc.log with panel debug output (34.62 KB, text/plain)
2017-06-20 08:02 CEST , Klaus Kusche
no flags

Additional information