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 645162 - Right-clicking an item in the Applications view resets the scrollbar to the top
Right-clicking an item in the Applications view resets the scrollbar to the top
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
2.91.x
Other Linux
: Normal major
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2011-03-18 17:20 UTC by Jean-François Fortin Tam
Modified: 2011-03-21 18:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
appDisplay: use get_allocation_box() in _ensureIconVisible (1.58 KB, patch)
2011-03-18 18:35 UTC, Dan Winship
committed Details | Review

Description Jean-François Fortin Tam 2011-03-18 17:20:15 UTC
On a 1024x768 screen (thus requiring scrolling),

1. scroll down the applications list
2. try to right-click one of the applications near the bottom to add it as a favorite

Result: the list is scrolled back up and your click "seems" to have been done on another application (if you actually click "add to favorites", the correct app is added, though). This is confusing.
Comment 1 Dan Winship 2011-03-18 18:35:51 UTC
Created attachment 183742 [details] [review]
appDisplay: use get_allocation_box() in _ensureIconVisible

When right-clicking on an AppWellIcon, the icon will become focused,
which (presumably via style-changed) invalidates its current
allocation, causing "icon.y" to return 0 until it has been
reallocated, messing up our idea of where in the AppDisplay the icon
is. Work around this by calling get_allocation_box() instead.
Comment 2 Owen Taylor 2011-03-18 21:49:06 UTC
Review of attachment 183742 [details] [review]:

Looks fine, though I'd consider the clutter code buggy:

  if (priv->needs_allocation)
    {
      if (priv->position_set)
        return priv->fixed_y;
      else
        return 0;
    }
  else
    return priv->allocation.y1;

really should be "ever been allocated", or really clutter just shouldn't have a y property that does two different things magically. But I guess that rubicon has been crossed :-)
Comment 3 Dan Winship 2011-03-21 18:27:01 UTC
Attachment 183742 [details] pushed as d0dd37f - appDisplay: use get_allocation_box() in _ensureIconVisible