/x11-libs/gtk+/files/appmenu/072_indicator_menu_update.patch

https://github.com/transtone/zm-overlay · Patch · 110 lines · 104 code · 6 blank · 0 comment · 0 complexity · e7591d53364af79da60f80075998bc74 MD5 · raw file

  1. ## Description: Adding two signals that are needed for Application Indicator to
  2. ## keep up-to-date with changed GtkMenu(Item)s.
  3. ## Origin/Author: Cody Russell <bratsche@gnome.org>,
  4. ## Sense Hofstede <sense@ubuntu.com>
  5. ## Bug: unknown and https://launchpad.net/bug/608219
  6. Index: gtk+-2.21.7/gtk/gtkcontainer.c
  7. ===================================================================
  8. --- gtk+-2.21.7.orig/gtk/gtkcontainer.c 2010-08-31 01:09:37.000000000 +1000
  9. +++ gtk+-2.21.7/gtk/gtkcontainer.c 2010-09-01 12:22:01.612617000 +1000
  10. @@ -48,6 +48,8 @@
  11. REMOVE,
  12. CHECK_RESIZE,
  13. SET_FOCUS_CHILD,
  14. + CHILD_ADDED,
  15. + CHILD_REMOVED,
  16. LAST_SIGNAL
  17. };
  18. @@ -291,6 +293,24 @@
  19. _gtk_marshal_VOID__OBJECT,
  20. G_TYPE_NONE, 1,
  21. GTK_TYPE_WIDGET);
  22. + container_signals[CHILD_ADDED] =
  23. + g_signal_new (I_("child-added"),
  24. + G_OBJECT_CLASS_TYPE (object_class),
  25. + G_SIGNAL_RUN_LAST,
  26. + 0,
  27. + NULL, NULL,
  28. + _gtk_marshal_VOID__OBJECT,
  29. + G_TYPE_NONE, 1,
  30. + GTK_TYPE_WIDGET);
  31. + container_signals[CHILD_REMOVED] =
  32. + g_signal_new (I_("child-removed"),
  33. + G_OBJECT_CLASS_TYPE (object_class),
  34. + G_SIGNAL_RUN_LAST,
  35. + 0,
  36. + NULL, NULL,
  37. + _gtk_marshal_VOID__OBJECT,
  38. + G_TYPE_NONE, 1,
  39. + GTK_TYPE_WIDGET);
  40. }
  41. static void
  42. Index: gtk+-2.21.7/gtk/gtkmenushell.c
  43. ===================================================================
  44. --- gtk+-2.21.7.orig/gtk/gtkmenushell.c 2010-09-01 12:21:11.762617001 +1000
  45. +++ gtk+-2.21.7/gtk/gtkmenushell.c 2010-09-01 12:22:01.612617000 +1000
  46. @@ -567,6 +567,8 @@
  47. GTK_WIDGET (menu_shell),
  48. child,
  49. position);
  50. +
  51. + g_signal_emit_by_name (menu_shell, "child-added", child);
  52. }
  53. static void
  54. Index: gtk+-2.21.7/gtk/gtkmenuitem.c
  55. ===================================================================
  56. --- gtk+-2.21.7.orig/gtk/gtkmenuitem.c 2010-09-01 12:21:09.562617001 +1000
  57. +++ gtk+-2.21.7/gtk/gtkmenuitem.c 2010-09-01 12:22:01.612617000 +1000
  58. @@ -52,6 +52,8 @@
  59. ACTIVATE_ITEM,
  60. TOGGLE_SIZE_REQUEST,
  61. TOGGLE_SIZE_ALLOCATE,
  62. + SUBMENU_ADDED,
  63. + SUBMENU_REMOVED,
  64. LAST_SIGNAL
  65. };
  66. @@ -244,6 +246,25 @@
  67. G_TYPE_NONE, 1,
  68. G_TYPE_INT);
  69. + menu_item_signals[SUBMENU_ADDED] =
  70. + g_signal_new (I_("submenu-added"),
  71. + G_OBJECT_CLASS_TYPE (gobject_class),
  72. + G_SIGNAL_RUN_FIRST,
  73. + 0,
  74. + NULL, NULL,
  75. + _gtk_marshal_VOID__OBJECT,
  76. + G_TYPE_NONE, 1,
  77. + GTK_TYPE_WIDGET);
  78. +
  79. + menu_item_signals[SUBMENU_REMOVED] =
  80. + g_signal_new (I_("submenu-removed"),
  81. + G_OBJECT_CLASS_TYPE (gobject_class),
  82. + G_SIGNAL_RUN_FIRST,
  83. + 0,
  84. + NULL, NULL,
  85. + _gtk_marshal_VOID__VOID,
  86. + G_TYPE_NONE, 0);
  87. +
  88. /**
  89. * GtkMenuItem:right-justified:
  90. *
  91. @@ -791,6 +812,14 @@
  92. if (GTK_WIDGET (menu_item)->parent)
  93. gtk_widget_queue_resize (GTK_WIDGET (menu_item));
  94. + if(submenu == NULL)
  95. + {
  96. + g_signal_emit_by_name (menu_item, "submenu-removed");
  97. + }
  98. + else
  99. + {
  100. + g_signal_emit_by_name (menu_item, "submenu-added", GTK_WIDGET(submenu));
  101. + }
  102. g_object_notify (G_OBJECT (menu_item), "submenu");
  103. }
  104. }