After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 563646 - Switching resolution can cause all applets to become right stuck
Switching resolution can cause all applets to become right stuck
Status: RESOLVED DUPLICATE of bug 314235
Product: gnome-panel
Classification: Other
Component: panel
2.22.x
Other Linux
: Normal normal
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-12-08 07:19 UTC by Karel Piwko
Modified: 2008-12-08 12:28 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22



Description Karel Piwko 2008-12-08 07:19:16 UTC
+++ This bug was initially created as a clone of Bug #314235 +++
(upgraded Gnome version to 2.22.x)

Same issue with openSUSE 11.0 (Gnome 2.22.1).

How to reproduce problem:
0/ Add applets to panel
1/ Run any Wine application in fullscreen mode when its resolution differs from
desktop resolution, then leave application
2/ Applets (all but the leftmost one) are randomly distributed on panel,
only leftmost one stays in right position





From fedora:

  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=165748

  the order of the objects on the Gnome panel gets mixed up after switching
  from resolution 1600x1200 to resolution 1024x768 and to 1600x1200. 

  Screenshot before:

    https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=117887

  Screenshot after:

    https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=117888

  I should probably mention that in the sequence documented above, I did
  absolutely nothing, except switching resolution and do what you asked me to.
  Nothing was done to the panel while in 1024x768.



From looking at the configuration dumps attached to the bug you can see that the
config changed along the lines of:

@@ -16,11 +16,11 @@
    launcher_location = gegl-00b540bf94.desktop
    tooltip =
    use_menu_path = false
-   panel_right_stick = false
+   panel_right_stick = true
    locked = false
    menu_path = applications:/
    object_type = launcher-object
-   position = 380
+   position = 6
   /tmp/t2/objects/object_0:
    toplevel_id = panel_0
    action_type = force-quit
@@ -31,11 +31,11 @@
    launcher_location =
    tooltip =
    use_menu_path = false
-   panel_right_stick = false
+   panel_right_stick = true
    locked = false
    menu_path = applications:/
    object_type = action-applet
-   position = 538
+   position = 4
   /tmp/t2/objects/menu_bar:
    toplevel_id = top_panel
    action_type = lock

i.e. all the applets became right stuck.


Basically, what we need to ensure is that we never change an applets GConf
config unless the user explicitly moves it.

In panel-widget.c we try to do this by storing the configured position in
AppletData::pos and the actual position in AppletData::constrained_pos - so if
the resolution changes, I'd expect to see all applet's AppletData::pos remain
the same, but the AppletData::constrained_pos would reflect the actual position
on the panel.

It looks like the problem might be in panel_widget_right_stick() - when the
panel width (for horizontal panels) changes, we call this function and it
changes AppletData::constrained_pos, which will later get saved to GConf. There
shouldn't be any need for this - panel_widget_right_stick() should only change
AppletData::pos, I reckon
Comment 1 Vincent Untz 2008-12-08 12:28:28 UTC
Please don't clone a bug for the same product.

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