[Pkg-xfce-devel] Bug#871523: xfce4-panel: Multiple monitors: panel ignores the "main monitor"
Package: xfce4-panel
Version: 4.12.1-2
Followup-For: Bug #871523
Dear Maintainer,
this bug was fixed by upstream for the 4.12 release of xfce. I extracted the patch from
here https://git.xfce.org/users/ochosi/xfce4-panel/log/?h=primary_for_4_12
It would be great if this patch was applied since it really seems that this issue bothers
lots of people.
Note: In order to get it working I had to reconfigure/reset to configuration for each panel.
Although the preferences dialog displayed "Primary" as Output, it actually still used
"Automatic".
To fix this just manually select "Automatic" in the drop box and the select "Primary"
again.
Best regards,
Robert
-- System Information:
Debian Release: 9.1
APT prefers stable
APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages xfce4-panel depends on:
ii exo-utils 0.10.7-1
ii libatk1.0-0 2.22.0-1
ii libc6 2.24-11+deb9u1
ii libcairo2 1.14.8-1
ii libdbus-1-3 1.10.18-1
ii libdbus-glib-1-2 0.108-2
ii libexo-1-0 0.10.7-1
ii libfontconfig1 2.11.0-6.7+b1
ii libfreetype6 2.6.3-3.2
ii libgarcon-1-0 0.4.0-2
ii libgdk-pixbuf2.0-0 2.36.5-2
ii libglib2.0-0 2.50.3-2
ii libgtk2.0-0 2.24.31-2
ii libice6 2:1.0.9-2
ii libpango-1.0-0 1.40.5-1
ii libpangocairo-1.0-0 1.40.5-1
ii libpangoft2-1.0-0 1.40.5-1
ii libsm6 2:1.2.2-1+b3
ii libwnck22 2.30.7-5.1
ii libx11-6 2:1.6.4-3
ii libxext6 2:1.3.3-1+b2
ii libxfce4ui-1-0 4.12.1-2
ii libxfce4util7 4.12.1-3
ii libxfconf-0-2 4.12.1-1
xfce4-panel recommends no packages.
xfce4-panel suggests no packages.
-- no debconf information
-------------- next part --------------
--- xfce4-panel-4.12.1/panel/panel-preferences-dialog.c 2016-08-11 23:54:27.000000000 +0200
+++ xfce4-panel-primary_for_4_12/panel/panel-preferences-dialog.c 2017-04-12 18:33:27.000000000 +0200
@@ -488,9 +488,18 @@
|| !exo_str_is_empty (output_name))
{
gtk_list_store_insert_with_values (GTK_LIST_STORE (store), &iter, n++,
- OUTPUT_NAME, NULL,
+ OUTPUT_NAME, "Automatic",
OUTPUT_TITLE, _("Automatic"), -1);
- if (exo_str_is_empty (output_name))
+ if (g_strcmp0 (output_name, "Automatic") == 0) {
+ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (object), &iter);
+ output_selected = TRUE;
+ span_monitors_sensitive = TRUE;
+ }
+ gtk_list_store_insert_with_values (GTK_LIST_STORE (store), &iter, n++,
+ OUTPUT_NAME, "Primary",
+ OUTPUT_TITLE, _("Primary"), -1);
+ if (exo_str_is_empty (output_name) ||
+ g_strcmp0 (output_name, "Primary") == 0)
{
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (object), &iter);
output_selected = TRUE;
--- xfce4-panel-4.12.1/panel/panel-window.c 2016-08-11 23:54:27.000000000 +0200
+++ xfce4-panel-primary_for_4_12/panel/panel-window.c 2017-04-12 18:33:27.000000000 +0200
@@ -2009,16 +2009,24 @@
}
else
{
- if (exo_str_is_empty (window->output_name))
+ if (g_strcmp0 (window->output_name, "Automatic") == 0
+ || window->output_name == NULL)
{
- normal_monitor_positioning:
-
/* get the monitor geometry based on the panel position */
monitor_num = gdk_screen_get_monitor_at_point (screen, window->base_x,
window->base_y);
gdk_screen_get_monitor_geometry (screen, monitor_num, &a);
panel_return_if_fail (a.width > 0 && a.height > 0);
}
+ else if (g_strcmp0 (window->output_name, "Primary") == 0)
+ {
+ normal_monitor_positioning:
+ /* get the primary monitor */
+ monitor_num = gdk_screen_get_primary_monitor (screen);
+
+ gdk_screen_get_monitor_geometry (screen, monitor_num, &a);
+ panel_return_if_fail (a.width > 0 && a.height > 0);
+ }
else
{
/* check if we've stored the monitor number in the config or
Reply to: