#4253 closed defect (fixed)
Palette trackpad interaction: they don't close after clicking items
Reported by: | greenfeld | Owned by: | manuq |
---|---|---|---|
Priority: | High | Milestone: | |
Component: | Sugar | Version: | 0.97.x |
Severity: | Unspecified | Keywords: | regression, r+, olpc-test-passed |
Cc: | erikos, dsd | Distribution/OS: | OLPC |
Bug Status: | Unconfirmed |
Description
The buddy menu palette for other users in the Neighborhood view does not close or otherwise acknowledge menu items being selected in OLPC 13.1.0 os12.
It just stays on screen with no changes appearing after clicking, even if the "Add {Remove} Friend" button is clicked multiple times or the "Invite to {Activity}" button is clicked (this menu item sometimes features the shared activity's icon twice).
Attachments (6)
Change History (26)
comment:1 Changed 11 years ago by garycmartin
comment:2 Changed 11 years ago by dsd
- Priority changed from Unspecified by Maintainer to Normal
comment:3 Changed 11 years ago by dsd
- Priority changed from Normal to High
comment:4 Changed 11 years ago by manuq
- Owner changed from erikos to manuq
- Status changed from new to assigned
comment:5 follow-up: ↓ 7 Changed 11 years ago by manuq
This is affecting also other palettes, for example the owner icon one:
- open the palette of the owner (central) icon
- click on My Settings
- close My Settings without opening other palettes
The palette is still there.
comment:6 Changed 11 years ago by manuq
- Summary changed from Buddy menu palette does not close or otherwise acknowledge menu items being selected to Palette trackpad interaction: they don't close after clicking items
comment:7 in reply to: ↑ 5 ; follow-up: ↓ 9 Changed 11 years ago by erikos
Replying to manuq:
This is affecting also other palettes, for example the owner icon one:
- open the palette of the owner (central) icon
- click on My Settings
- close My Settings without opening other palettes
The palette is still there.
Hmm, I can not reproduce that all the time. In the case where I reproduced, the icon had as well the 'clicked'-state background colour which does stay even so the Palette is down now.
Actually the way of reproducing this for the owner icon is:
- open owner Palette with the mouse and click on 'My settings'
- close the CP with touch
- the Palette stays open then because the mouse is still over it
comment:8 Changed 11 years ago by erikos
Actually see as well #4191.
comment:9 in reply to: ↑ 7 Changed 11 years ago by manuq
Replying to erikos:
Hmm, I can not reproduce that all the time.
The buddy palette is dismissed if another palette pops up. Probably the tooltip of the X close icon of the control panel is catching you. If I close the CP fast enough so that the tooltip does not appear, I hit the issue every time.
Actually the way of reproducing this for the owner icon is:
- open owner Palette with the mouse and click on 'My settings'
- close the CP with touch
- the Palette stays open then because the mouse is still over it
Yes, closing it by touch doesn't pop up the tooltip and you can always reproduce the bug too.
comment:10 Changed 11 years ago by manuq
The attached patch fixes the issue for the Buddy icons, and #4191 is another case of the same issue but for the AP icons in the neighborhood.
The current implementation of the palette requires that we explicitly call the popdown method of the palette after each item is activated. This affects the mouse interaction, in touch interaction the palette
is dismissed correctly.
I hope we can get to a more general fix, although this might require an API change in the palette. I'm looking for this.
A more detailed description: With mouse interaction, palettes are not dismissed when an item is activated. But the callback is called, even if the change is not reflected in the palette left opened ("Remove friend" in neighborhood, for example). There is nothing special in the logs, the palette just stays.
One can be mislead because sometimes it seems to work: for example seems to work fine for "Remove friend" in groups view, but what happens is that the palette goes away with the icon.
comment:11 Changed 11 years ago by manuq
- Cc erikos added
- Keywords r? added
comment:12 Changed 11 years ago by manuq
Trying a more general solution: we could connect a callback for the item 'activate' signal in the palette, and call popdown from it. Unfortunatly this needs some API change, so I think we are safer calling the popdown explicitly (first patch).
Anyways, leaving a note here of what I've tried.
My first attempt: Palette.set_content() is always receiving a widget that is a Gtk.Container, like Gtk.VBox. So first I tried to connect the palette to the 'add' signal [1], so that each time an item is added, we connect its 'activate' signal to the palette. But turns out the callback is not called for pack_start/pack_end, only for add. So, there isn't a signal we can listen for when a widget is packed. Testcase: [2].
[1] http://developer.gnome.org/gtk3/stable/GtkContainer.html#GtkContainer-add
[2] http://dev.laptop.org/~manuq/shell-port/test_add.py
So I did a fix only for when the palette content is a PaletteMenuBox, and the PaletteMenuItems are added to it using the append_item() method. This requires API change. The two patches above shows this work for the Buddy palette.
Changed 11 years ago by erikos
Popdown the palette if an item in the content box gets activated (toolkit)
comment:13 Changed 11 years ago by manuq
- Keywords r+ added; r? removed
Simon general solution is working great. I added a patch to adapt Browse.
comment:14 Changed 11 years ago by manuq
Pushed Browse one as 343f6543 .
comment:15 Changed 11 years ago by erikos
- Keywords olpc-testing-pending added
- Resolution set to fixed
- Status changed from assigned to closed
toolkit: f5fee8a1445f76d3b04497671a93179329fe1efb
shell: cb8b42ad069fbd067b4963c29993451b510b944d
browse: 343f65430a738bdf0b574be3fb47532f0a653fc7
comment:16 Changed 11 years ago by dsd
- Cc dsd added
- Keywords olpc-test-pending added; olpc-testing-pending removed
I'll assume that Browse-149 is proposed for 13.1.0 inclusion as a result of this work. (see http://wiki.laptop.org/go/13.1.0#Activity_inclusion_process for how to request this at this point)
comment:17 follow-up: ↓ 18 Changed 11 years ago by dsd
Maybe not. Browse-49 doesn't appear to be released as an activity bundle yet.
comment:18 in reply to: ↑ 17 Changed 11 years ago by manuq
Replying to dsd:
Maybe not. Browse-49 doesn't appear to be released as an activity bundle yet.
Now it is, sorry about that, please include as per the reasonings above: sync with palettes change in toolkit, remove explicit popdown of palettes.
comment:19 Changed 11 years ago by greenfeld
- Keywords olpc-test-passed added; olpc-test-pending removed
Browse 149 is in 13.1.0 os21 (os20 had 148) with Sugar 0.98.3.
In general palettes/menus seem to be closing properly.
13.1.0 build 12, XO-1.75 and XO-4:
Clarification, on testing here, this appears to be for trackpad/mouse cursor interaction only. Testing with touch screen interaction, the buddy menu palette for other users correctly closes after making an entry selection (Add friend, Remove friend, Invite to {activity}).