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 700257 - Port to GtkMenuTrackerItem
Port to GtkMenuTrackerItem
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2013-05-13 20:39 UTC by Jasper St. Pierre (not reading bugmail)
Modified: 2013-05-13 22:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Update copy/paste code from upstream (81.96 KB, patch)
2013-05-13 20:39 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
gtkactionmuxer: Reintroduce the passing of event timestamps (2.49 KB, patch)
2013-05-13 20:39 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
Add a separate ShellMenu GIR file for introspecting the copy/paste code (2.13 KB, patch)
2013-05-13 20:39 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
popupMenu: Split the remote menu code into its own module (18.26 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Port to GtkMenuTrackerItem (56.17 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
none Details | Review
remoteMenu: Add support for extended accessibility roles (2.03 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Allow separator items to have labels (3.52 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
none Details | Review
remoteMenu: Split the tracking code out of RemoteMenu (2.49 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Add support for submenu items (5.35 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
none Details | Review
remoteMenu: Add support for the submenu show requests (3.75 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Minor code cleanups (1.40 KB, patch)
2013-05-13 20:40 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Port to GtkMenuTrackerItem (56.27 KB, patch)
2013-05-13 22:20 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Allow separator items to have labels (3.63 KB, patch)
2013-05-13 22:21 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review
remoteMenu: Add support for submenu items (5.46 KB, patch)
2013-05-13 22:21 UTC, Jasper St. Pierre (not reading bugmail)
committed Details | Review

Description Jasper St. Pierre (not reading bugmail) 2013-05-13 20:39:47 UTC
We did half of this a while ago when we ported to GtkMenuTracker.
But Ryan had another trick up his sleeve. Here's the final API we
should be porting to.

This is a giant set of cleanups that punt a lot of the complex code
into C and into Ryan's hand to maintain, while adding support for a
lot of GModelMenu features, some new, some we just didn't work on
before.

This patch set makes me really happy.
Comment 1 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:39:50 UTC
Created attachment 244091 [details] [review]
Update copy/paste code from upstream

This includes a rename from the G* namespace to the Gtk* one, which
will help us with introspecting this code. Note that this removes
some of the custom code we added to GActionMuxer to relay event times
to the remote action group. We'll add this back soon.
Comment 2 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:39:54 UTC
Created attachment 244092 [details] [review]
gtkactionmuxer: Reintroduce the passing of event timestamps

This is a hack we have in our local fork as compared to upstream;
work on a generic "hook" system in here is ongoing, but until then,
this is the easiest way to do it.
Comment 3 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:39:57 UTC
Created attachment 244093 [details] [review]
Add a separate ShellMenu GIR file for introspecting the copy/paste code

We'll need some of these pieces to be introspectable when we port to
GtkMenuTrackerItem. Due to technical limitations in introspection, we
can't put Gtk-prefixed items in the shell namespace, so add them to
a new introspection library instead.
Comment 4 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:01 UTC
Created attachment 244094 [details] [review]
popupMenu: Split the remote menu code into its own module

This is getting sufficiently complicated to deserve its own place.
Comment 5 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:06 UTC
Created attachment 244095 [details] [review]
remoteMenu: Port to GtkMenuTrackerItem

This pulls in new upstream API that Ryan will maintain, removing
code on our side.

Currently, our implementation of submenus will be gone, but this
will be fixed in a few commits.
Comment 6 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:09 UTC
Created attachment 244096 [details] [review]
remoteMenu: Add support for extended accessibility roles
Comment 7 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:12 UTC
Created attachment 244097 [details] [review]
remoteMenu: Allow separator items to have labels

This fixes a regression with remote menus where sections have
labels, like gnome-documents.
Comment 8 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:16 UTC
Created attachment 244098 [details] [review]
remoteMenu: Split the tracking code out of RemoteMenu

The tracking logic will be used to more easily implement submenus.
Comment 9 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:19 UTC
Created attachment 244099 [details] [review]
remoteMenu: Add support for submenu items

Wrap new GtkMenuTracker API that adds an easy way to bind to
tracker items, and use it to add back support for submenus.
This also adds support for a submenu feature that we didn't
have support for before, action namespaces.
Comment 10 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:22 UTC
Created attachment 244100 [details] [review]
remoteMenu: Add support for the submenu show requests

This lets clients defer submenus showing until their submenu model
is ready.
Comment 11 Jasper St. Pierre (not reading bugmail) 2013-05-13 20:40:26 UTC
Created attachment 244101 [details] [review]
remoteMenu: Minor code cleanups
Comment 12 Jasper St. Pierre (not reading bugmail) 2013-05-13 22:20:55 UTC
Created attachment 244118 [details] [review]
remoteMenu: Port to GtkMenuTrackerItem

This pulls in new upstream API that Ryan will maintain, removing
code on our side.

Currently, our implementation of submenus will be gone, but this
will be fixed in a few commits.
Comment 13 Jasper St. Pierre (not reading bugmail) 2013-05-13 22:21:06 UTC
Created attachment 244119 [details] [review]
remoteMenu: Allow separator items to have labels

This fixes a regression with remote menus where sections have
labels, like gnome-documents.
Comment 14 Jasper St. Pierre (not reading bugmail) 2013-05-13 22:21:24 UTC
Created attachment 244120 [details] [review]
remoteMenu: Add support for submenu items

Wrap new GtkMenuTracker API that adds an easy way to bind to
tracker items, and use it to add back support for submenus.
This also adds support for a submenu feature that we didn't
have support for before, action namespaces.
Comment 15 Giovanni Campagna 2013-05-13 22:33:06 UTC
I reviewed the whole stack off splinter, and all my comments were addressed in IRC. Also, it works fine in my testing.

For me, this is good for master.
Comment 16 Jasper St. Pierre (not reading bugmail) 2013-05-13 22:34:35 UTC
Attachment 244091 [details] pushed as 10e857c - Update copy/paste code from upstream
Attachment 244092 [details] pushed as a6a2cea - gtkactionmuxer: Reintroduce the passing of event timestamps
Attachment 244093 [details] pushed as bfd1cc9 - Add a separate ShellMenu GIR file for introspecting the copy/paste code
Attachment 244094 [details] pushed as 5803f69 - popupMenu: Split the remote menu code into its own module
Attachment 244096 [details] pushed as 3075f3c - remoteMenu: Add support for extended accessibility roles
Attachment 244098 [details] pushed as 026f61f - remoteMenu: Split the tracking code out of RemoteMenu
Attachment 244100 [details] pushed as c698dee - remoteMenu: Add support for the submenu show requests
Attachment 244101 [details] pushed as ff3c20d - remoteMenu: Minor code cleanups
Attachment 244118 [details] pushed as 419f2dc - remoteMenu: Port to GtkMenuTrackerItem
Attachment 244119 [details] pushed as af063dc - remoteMenu: Allow separator items to have labels
Attachment 244120 [details] pushed as 8891a41 - remoteMenu: Add support for submenu items