Re: Minutes of the GTK+ Team Meeting - 2009-11-27



On Wed, Nov 25, 2009 at 6:25 PM, Cody Russell <bratsche gnome org> wrote:
> On Wed, 2009-11-25 at 17:52 -0500, Matthias Clasen wrote:
>>
>> > 7. menu export over D-Bus [bratsche]
>> > - useful for ubuntu's "application indicators"
>> > - Quartz backend
>> > - menu reflowing
>> > - bratsche is working on a general purpose menu proxy
>> > - 3.0 material
>>
>> Is this based on proxying actions over dbus, or widgets ?
>
> Uh, well both I guess.  The original idea was to create a menu proxy
> interface that's implemented via a GTypeModule, so that module could
> implement OSX-specific functionality on Mac or it could implement
> something using dbus.  This would modify GtkMenuShell or something so
> that if it has a proxy module loaded then it would be able to push items
> to the proxy and listen to events from them.  I've got the code for this
> bootstrapped already, but need to flesh it out some more still.
>
> Then I thought this could also be useful for dealing with menubar
> overflow, so that the menubar could dump additional menus/menuitems into
> the overflow area and get events on them without having to reparent
> anything.  This shouldn't depend on any system-level features like
> Quartz or dbus though, so I probably need to generalize the code I've
> got a little more to make it useful for this case as well.

this may be significantly more complex than you are imagining.

on OS X it is not only necessary to push the items to a proxy (in this
case, the main menu bar at the top of the display), but also to push
events there too. the needs of applications in this regard vary -
simple applications can probably get away with a default or at worst a
single function to say "forward window events to menu proxy". however,
for more complex apps (gimp, ardour, beast), this isn't true - they
need the event forwarding done in a rather application specific way. i
have a patch for gtk/gdk/aqua that provides this, but it is very hard
for me to imagine it being built in to a generic menu proxy system.

also, as a side note: this stuff is one of the few areas where
gtk/gdk/aqua uses the carbon API and thus prevents 64 bits builds for
snow leopard.

--p


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]