[Goodies-dev] Questions about xfdesktop's menu plugin

Diego Ongaro ongardie at gmail.com
Fri Apr 20 21:35:34 CEST 2007


I've posted this to the xfce4-dev mailing list per Brian Tarricone's
suggestion, along with some initial responses I got from him via IRC.
Please watch/reply to this thread if you're interested:
http://foo-projects.org/pipermail/xfce4-dev/2007-April/022964.html .

Diego Ongaro


On 4/18/07, Diego Ongaro <ongardie at gmail.com> wrote:
> In preparation for the next release of the places plugin, I based much
> of the view on xfdesktop's menu panel plugin. Jens (perldude)
> suggested I drop the arrow, so the plugin now behaves like the menu
> rather than a launcher. Below, I've listed 5 different questions I
> have about xfdesktop's code.
>
> 1) g_object_ref new image
>
> Line 1016-7 of xfdesktop:
>     dmp->image = gtk_image_new();
>     g_object_ref(G_OBJECT(dmp->image));
>
> As far as I know, this is never unref'ed. Is that intentional?
>
> 2) registering menu with panel
>
> xfdesktop calls xfce_panel_plugin_register_menu() before each time the
> menu is opened. Is it sufficient to call
> xfce_panel_plugin_register_menu() only when the menu is (re-)created?
>
> 3) Menu deactivate signal
>
> menu_activate() stores the signal id of the menu_deactivated()
> callback with the menu. Later, menu_deactivated() does two things.
> First, it sets the button state to inactivated. Second, it retrieves
> the signal id and disables that signal with it. Is this done simply
> because the deactivate callback could be connected multiple times?
>
> 4) Control-click
>
> dmp_poopup has:
>   if(evt->button != 1 || ((evt->state & GDK_CONTROL_MASK)
>   && !(evt->state & (GDK_MOD1_MASK|GDK_SHIFT_MASK
>   |GDK_MOD4_MASK))))
>
> I see what that does, but why? Is this for the poor folks with 1-button mice?
>
> 5) Tooltips
>
> This is probably the wrong mailing list for this item. Regardless:
>
> I call gtk_tooltips_new() and then gtk_tooltips_set_tip() on the
> button to _("Places"). Do I need to ref, unref, and/or sink the
> GtkTooltips variable? xfdesktop keeps a pointer to its GtkTooltips
> struct since its tooltip changes based on preferences. It later calls
> gtk_object_sink() in dmp_free().
>
>
> Please respond to this email or catch me on IRC if you can help with
> any of these.
> Thanks,
> Diego Ongaro (ongardie on freenode)
>



More information about the Goodies-dev mailing list