I'm sorry for my negligence, this is the patch:
diff --git indicator-applet/src/applet-main.c indicator-applet/src/applet-main.c --- indicator-applet/src/applet-main.c +++ indicator-applet/src/applet-main.c @@ -362,6 +362,21 @@ accessible_desc_update (IndicatorObject return; }
+static gboolean +do_menu_reposition(gpointer menu) +{ + gtk_widget_set_size_request(menu, -1, -1); + g_timeout_add(20, (GSourceFunc) gtk_menu_reposition, (gpointer) menu); + return 0; +} + +static void +on_menuitem_show (GtkMenuItem *menuitem, gpointer menu) +{ + gtk_widget_set_size_request(menu, -1, 350); + g_idle_add((GSourceFunc) do_menu_reposition, (gpointer) menu); +} + static void entry_added (IndicatorObject * io, IndicatorObjectEntry * entry, GtkWidget * menubar) { @@ -435,6 +450,7 @@ entry_added (IndicatorObject * io, Indic
if (entry->menu != NULL) { gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(entry->menu)); + g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_menuitem_show), entry->menu); }
place_in_menu(menubar, menuitem, io, entry);
I'm sorry for my negligence,
this is the patch:
diff --git indicator- applet/ src/applet- main.c indicator- applet/ src/applet- main.c applet/ src/applet- main.c applet/ src/applet- main.c desc_update (IndicatorObject
--- indicator-
+++ indicator-
@@ -362,6 +362,21 @@ accessible_
return;
}
+static gboolean reposition( gpointer menu) set_size_ request( menu, -1, -1); reposition, (gpointer) menu); set_size_ request( menu, -1, 350); add((GSourceFun c) do_menu_reposition, (gpointer) menu); Entry * entry, GtkWidget * menubar)
+do_menu_
+{
+ gtk_widget_
+ g_timeout_add(20, (GSourceFunc) gtk_menu_
+ return 0;
+}
+
+static void
+on_menuitem_show (GtkMenuItem *menuitem, gpointer menu)
+{
+ gtk_widget_
+ g_idle_
+}
+
static void
entry_added (IndicatorObject * io, IndicatorObject
{
@@ -435,6 +450,7 @@ entry_added (IndicatorObject * io, Indic
if (entry->menu != NULL) { menu_item_ set_submenu( GTK_MENU_ ITEM(menuitem) , GTK_WIDGET( entry-> menu)); connect( G_OBJECT( menuitem) , "activate", G_CALLBACK( on_menuitem_ show), entry->menu);
gtk_
+ g_signal_
}
place_ in_menu( menubar, menuitem, io, entry);