Package: xfce4-panel Version: 4.12.2-1 Severity: wishlist Tags: patch upstream
Dear Maintainer, The panel "Output" settings does not allow easily to configure option where it would be placed on any connected external monitor (regardless of name of the monitor), while not shown on the primary laptop monitor when there is no external monitor attached. The patch adds and "Non-primary" option to the panel preferences "Output" list allowing that behaviour. Similar wish has been described e.g. here: http://colinrrobinson.com/technology/linux/xfce/automatically-switch-xfce-panel-layout-plugging-monitor/ (there the solution is quite heavy, using Xubuntu tool xfpanel-switch). Feel free to forward the bug upstream if you would find it useful. Best regards, Pavel -- System Information: Debian Release: bullseye/sid APT prefers testing APT policy: (840, 'testing'), (740, 'unstable'), (738, 'experimental'), (540, 'proposed-updates'), (540, 'stable'), (500, 'oldstable-proposed-updates'), (500, 'oldoldstable'), (500, 'oldstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-5-amd64 (SMP w/8 CPU cores) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages xfce4-panel depends on: ii exo-utils 0.12.6-1 ii libatk1.0-0 2.32.0-2 ii libc6 2.28-10 ii libcairo2 1.16.0-4 ii libdbus-1-3 1.12.16-1 ii libdbus-glib-1-2 0.110-4 ii libexo-1-0 0.12.6-1 ii libfontconfig1 2.13.1-2 ii libfreetype6 2.9.1-4 ii libgarcon-1-0 0.6.3-1 ii libgdk-pixbuf2.0-0 2.38.1+dfsg-1 ii libglib2.0-0 2.60.6-1 ii libgtk2.0-0 2.24.32-3 ii libice6 2:1.0.9-2 ii libpango-1.0-0 1.42.4-6 ii libpangocairo-1.0-0 1.42.4-6 ii libpangoft2-1.0-0 1.42.4-6 ii libsm6 2:1.2.3-1 ii libwnck22 2.30.7-6 ii libx11-6 2:1.6.7-1 ii libxext6 2:1.3.3-1+b2 ii libxfce4ui-1-0 4.12.1-3 ii libxfce4util7 4.12.1-3 ii libxfconf-0-2 4.12.1-1+b1 xfce4-panel recommends no packages. xfce4-panel suggests no packages. -- no debconf information
--- old/panel/panel-preferences-dialog.c +++ new/panel/panel-preferences-dialog.c @@ -506,6 +506,15 @@ output_selected = TRUE; span_monitors_sensitive = TRUE; } + gtk_list_store_insert_with_values (GTK_LIST_STORE (store), &iter, n++, + OUTPUT_NAME, "Non-primary", + OUTPUT_TITLE, _("Non-primary"), -1); + if (g_strcmp0 (output_name, "Non-primary") == 0) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (object), &iter); + output_selected = TRUE; + span_monitors_sensitive = TRUE; + } if (n_screens > 1) { --- old/panel/panel-window.c +++ new/panel/panel-window.c @@ -2040,6 +2040,8 @@ } else { + gint monitor_num_primary = gdk_screen_get_primary_monitor (screen); + gboolean is_non_primary = g_strcmp0 (window->output_name, "Non-primary") == 0; /* detect the monitor number by output name */ for (n = 0, monitor_num = -1; n < n_monitors && monitor_num == -1; n++) { @@ -2065,7 +2067,9 @@ } /* check if this is the monitor we're looking for */ - if (strcmp (window->output_name, name) == 0) + if ( is_non_primary && n != monitor_num_primary) + monitor_num = n; + else if (strcmp (window->output_name, name) == 0) monitor_num = n; g_free (name);