miniature view wrong on xfce workspace switcher applet

Bug #1325069 reported by jimk
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Xfce4 Panel
Invalid
Medium
xfce4-panel (Ubuntu)
Triaged
Undecided
Unassigned

Bug Description

Installation: Ubuntu 14.04 LTS with xfce desktop
Hardware: Dell Latitiude laptop (monitor 1600x900, 60.1Hz) with Dell 23" monitor (1920x1080, 60.0Hz) plugged into the VGA port
Configuration:
 - in "Display" settings, both monitors (Laptop and Dell 23") being used, Dell 23" above Laptop, no mirroring, no rotation, no reflection, do configure new displays when connected
 - 6 Workspaces
 - top and bottom panels on the Dell23, with Workspace Switcher applet added to far right of bottom panel
 - Workspace Switcher applet settings: 2 rows, show miniature view, no switch with mouse wheel
 - bottom panel on the Laptop

The miniature view of each workspace in the workspace switcher takes up only the left half of the workspace area in the workspace switcher. See the attached screenshot zoomed in on the workspace switcher showing that only half of the active workspace is highlit and in use and the miniature view is scaled to fit (i.e. is stretched vertically). I could only include one attachment, otherwise I would have included a screenshot of the full screen as well.

Revision history for this message
jimk (jim-by-the-bay) wrote :
Revision history for this message
jimk (jim-by-the-bay) wrote :

I just unchecked "Use this output" (in the "Display" settings) for the Dell 23" (which was configured for "above" the laptop screen) to use only the laptop display, and then checked it again to use both, and the workspace switcher applet got even worse. It seems that ever time the I enable using another display, the workspace switcher adds another scaling factor. But I do not think is only a workspace switcher applet problem, because now there is a "dead" gap when I move my mouse from one display to the other, i.e. the mouse pointer moves down off the top display, but I have to move the mouse the height of the lower display before the mouse pointer shows up at the top of the lower display. I am attacing another screenshot.

Revision history for this message
jimk (jim-by-the-bay) wrote :
Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :

(Fedora 22 packaged xfce4-panel-4.12.0-3.fc22.x86_64)
I have two monitors, each has it's own panel, and each panel has it's own identically configured workspace switcher widget.
I have 9 workspaces, and the switcher widgets are configured to show them as 3 rows (so I have a 3x3 grid).

On one of my monitors, the workspace switcher always starts up correctly, on the other it always starts up showing a row of 9 workspaces. If I right click and bring up the properties dialog it immediately springs into the right 3x3 shape before I've done anything with the dialog.

Looking at .config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml I see two
sections for pager data:

    <property name="plugin-4" type="string" value="pager">
      <property name="rows" type="uint" value="3"/>
    </property>

and

    <property name="plugin-7" type="string" value="pager">
      <property name="rows" type="uint" value="3"/>
    </property>

so they do agree.

Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :

(Actually; kind of side comment - why is the rows value associated with the panel widget? Given that there are shortcut binds for the window manager for up/down/right/left in workspaces it seems odd to have this setting on the panel widget).

Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :

Noticed in .xsession-errors:

libpager-Message: Setting the pager rows returned false. Maybe the setting is not applied.

I'm not sure when that was logged though.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xfce4-panel (Ubuntu):
status: New → Confirmed
Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :

that libpager message error seems to come from the call to

  wnck_pager_set_n_rows

and it can only return the error case if the wnck_pager_set_layout_hint fails.

Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :
Download full text (3.3 KiB)

I think I understand-ish why this is happening, and have a fix that makes it work, but I'm not sure if there are any side effects.
First the fix:

--- plugins/pager/pager.c 2015-02-26 20:32:17.000000000 +0000
+++ fixed/plugins/pager/pager.c 2015-05-31 16:23:35.682554450 +0100
@@ -320,8 +320,8 @@
   if (G_UNLIKELY (plugin->pager != NULL))
     {
       gtk_widget_destroy (GTK_WIDGET (plugin->pager));
- wnck_screen_force_update (plugin->wnck_screen);
     }
+ wnck_screen_force_update (plugin->wnck_screen);

   mode = xfce_panel_plugin_get_mode (XFCE_PANEL_PLUGIN (plugin));
   orientation =

---------------------

Now some explanation; I added a lot of debug in libwnck

wnck_pager_set_layout_hint: Entry for 0x26bb1e0
_wnck_pager_set_screen: entry for 0x26bb1e0
_wnck_pager_set_screen: Exit for !gtk_widget_has_screen
wnck_pager_set_layout_hint: pager->priv->screen==NULL
libpager-Message: Setting the pager rows returned false. Maybe the setting is not applied.
_wnck_pager_set_screen: entry for 0x26bb1e0
wnck_pager_set_layout_hint: Entry for 0x26bb1e0
wnck_screen_try_set_workspace_layout entry: screen=0x26938b0 current_token=0 rows=3 columns=0
wnck_pager_set_layout_hint: bottom 1
_wnck_pager_set_screen: Exit bottom
wnck_pager_set_layout_hint: Entry for 0x26bb620
_wnck_pager_set_screen: entry for 0x26bb620
_wnck_pager_set_screen: Exit for !gtk_widget_has_screen
wnck_pager_set_layout_hint: pager->priv->screen==NULL
libpager-Message: Setting the pager rows returned false. Maybe the setting is not applied.
_wnck_pager_set_screen: entry for 0x26bb620
wnck_pager_set_layout_hint: Entry for 0x26bb620
wnck_screen_try_set_workspace_layout entry: screen=0x26938b0 current_token=0 rows=3 columns=0
wnck_pager_set_layout_hint: bottom 0
_wnck_pager_set_screen: in !set_layout_hint branch, before get_workspace_layout n_rows=3
!!! _wnck_pager_set_screen: in !set_layout_hint branch, after get_workspace_layout n_rows=1
_wnck_pager_set_screen: Exit bottom
update_workspace_layout on 0x26938b0
!!! update_workspace_layout on 0x26938b0: num_workspaces=9 rows=3 cols=0
update_workspace_layout on 0x26938b0

Note the two lines with !!!
What I think happens is that the 1st pager instance works OK, but for the 2nd pager we end up in _wnck_pager_set_screen and it has:
  if (!wnck_pager_set_layout_hint (pager))
    {
      _WnckLayoutOrientation orientation;

      /* we couldn't set the layout on the screen. This means someone else owns
       * it. Let's at least show the correct layout. */
      _wnck_screen_get_workspace_layout (pager->priv->screen,
                                         &orientation,
                                         &pager->priv->n_rows,
                                         NULL, NULL);

that should ensure that the 2nd pager has the same layout, but it doesn't work because as from that debug we see:

_wnck_pager_set_screen: in !set_layout_hint branch, after get_workspace_layout n_rows=1

so _wnck_screen_get_workspace_layout is getting the wrong answer - why?
Well I think it's set by update_workspace_layout, and we only see that called
later in the debug; it's normally called on idle - see update_idle.
But I guess there's no idle between ...

Read more...

Revision history for this message
In , Dave Gilbert (ubuntu-treblig) wrote :

hmm; hang off on that fix - it works if I kill the panel and restart it; however it still failed at start of session.

Revision history for this message
Theo Linkspfeifer (lastonestanding) wrote :

It is possible that this bug was fixed at some point, or in a later release.

Is this the case?

Changed in xfce4-panel (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
jimk (jim-by-the-bay) wrote : Re: [Bug 1325069] Re: miniature view wrong on xfce workspace switcher applet

I still have problems with the Workspace Switcher that is on the external
display panel (as opposed to Workspace Switcher on the laptop display
panel) one , when I initially log in it shows 6 workspaces in 1 row rather
than the 2 rows it is configured for. All I have to do to fix it (until I
log out) is to just open the properties for that Workspace Switcher...
opening the properties seems to force a reload of the properties and it
changes to 2 rows.

Thanks,
JimK

On Fri, Sep 14, 2018 at 5:00 AM Theo Linkspfeifer <
<email address hidden>> wrote:

> It is possible that this bug was fixed at some point, or in a later
> release.
>
> Is this the case?
>
> ** Changed in: xfce4-panel (Ubuntu)
> Status: Confirmed => Incomplete
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1325069
>
> Title:
> miniature view wrong on xfce workspace switcher applet
>
> Status in xfce4-panel package in Ubuntu:
> Incomplete
>
> Bug description:
> Installation: Ubuntu 14.04 LTS with xfce desktop
> Hardware: Dell Latitiude laptop (monitor 1600x900, 60.1Hz) with Dell 23"
> monitor (1920x1080, 60.0Hz) plugged into the VGA port
> Configuration:
> - in "Display" settings, both monitors (Laptop and Dell 23") being
> used, Dell 23" above Laptop, no mirroring, no rotation, no reflection, do
> configure new displays when connected
> - 6 Workspaces
> - top and bottom panels on the Dell23, with Workspace Switcher applet
> added to far right of bottom panel
> - Workspace Switcher applet settings: 2 rows, show miniature view, no
> switch with mouse wheel
> - bottom panel on the Laptop
>
> The miniature view of each workspace in the workspace switcher takes
> up only the left half of the workspace area in the workspace switcher.
> See the attached screenshot zoomed in on the workspace switcher
> showing that only half of the active workspace is highlit and in use
> and the miniature view is scaled to fit (i.e. is stretched
> vertically). I could only include one attachment, otherwise I would
> have included a screenshot of the full screen as well.
>
> To manage notifications about this bug go to:
>
> https://bugs.launchpad.net/ubuntu/+source/xfce4-panel/+bug/1325069/+subscriptions
>

--
The means is the ends in the process of becoming. - Mahatma Gandhi

It is our choices, Harry, that show what we truly are, far more than our
abilities. - Albus Dumbledore

Revision history for this message
Theo Linkspfeifer (lastonestanding) wrote :

JimK, thank you for the quick reply.

I was able to find an upstream report for this issue:

https://bugzilla.xfce.org/show_bug.cgi?id=11831

Changed in xfce4-panel (Ubuntu):
status: Incomplete → Confirmed
Changed in xfce4-panel:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , Andreldm-2 (andreldm-2) wrote :

*** Bug 14643 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Simon Steinbeiß (ochosi) wrote :

*** Bug 15834 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Simon Steinbeiß (ochosi) wrote :

Indeed, I can confirm the bug. I'm not sure it's in the panel though, I think it's a limitation of libwnck.

From reading the code (and documentation) about that call only one pager widget should try to set the rows (i.e. you shouldn't really be able to configure two pager widgets differently consistently).
https://gitlab.gnome.org/GNOME/libwnck/blob/master/libwnck/pager.c#L2330

Also, I just noticed that Nick already understood this a looooong time ago. So marking this bug as a duplicate too...

Revision history for this message
In , Simon Steinbeiß (ochosi) wrote :

*** This bug has been marked as a duplicate of bug 6555 ***

Changed in xfce4-panel:
status: Confirmed → Invalid
Sean Davis (bluesabre)
Changed in xfce4-panel (Ubuntu):
status: Confirmed → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.