[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r118037: Fix Gtk+ tearoff not present on Customize E
From: |
Jan D. |
Subject: |
[Emacs-diffs] trunk r118037: Fix Gtk+ tearoff not present on Customize Emacs and not at menu top. |
Date: |
Sat, 04 Oct 2014 12:28:47 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 118037
revision-id: address@hidden
parent: address@hidden
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Sat 2014-10-04 14:28:41 +0200
message:
Fix Gtk+ tearoff not present on Customize Emacs and not at menu top.
* gtkutil.c (create_menus): Only add tearoffs to empty menus.
(xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
for add_tearoff_p.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/gtkutil.c gtkutil.c-20091113204419-o5vbwnq5f7feedwu-2527
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-10-04 08:20:24 +0000
+++ b/src/ChangeLog 2014-10-04 12:28:41 +0000
@@ -1,3 +1,9 @@
+2014-10-04 Jan Djärv <address@hidden>
+
+ * gtkutil.c (create_menus): Only add tearoffs to empty menus.
+ (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
+ for add_tearoff_p.
+
2014-10-04 Martin Rudalics <address@hidden>
* buffer.c (scroll_bar_width, scroll_bar_height): Fix
=== modified file 'src/gtkutil.c'
--- a/src/gtkutil.c 2014-10-01 13:21:08 +0000
+++ b/src/gtkutil.c 2014-10-04 12:28:41 +0000
@@ -2554,11 +2554,18 @@
#ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW
if (! menu_bar_p && add_tearoff_p)
{
- GtkWidget *tearoff = gtk_tearoff_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (wmenu), tearoff);
+ // Only add tearoff if menu is empty.
+ GList *list = gtk_container_get_children (GTK_CONTAINER (wmenu));
+ if (! list)
+ {
+ GtkWidget *tearoff = gtk_tearoff_menu_item_new ();
+ gtk_menu_shell_append (GTK_MENU_SHELL (wmenu), tearoff);
- g_signal_connect (G_OBJECT (tearoff), "activate",
- G_CALLBACK (tearoff_activate), 0);
+ g_signal_connect (G_OBJECT (tearoff), "activate",
+ G_CALLBACK (tearoff_activate), 0);
+ }
+ else
+ g_list_free (list);
}
#endif
@@ -3088,7 +3095,6 @@
GList *list = 0;
GList *iter;
widget_value *cur;
- bool has_tearoff_p = 0;
GList *first_radio = 0;
if (submenu)
@@ -3104,7 +3110,6 @@
/* Skip tearoff items, they have no counterpart in val. */
if (GTK_IS_TEAROFF_MENU_ITEM (w))
{
- has_tearoff_p = 1;
iter = g_list_next (iter);
if (iter) w = GTK_WIDGET (iter->data);
else break;
@@ -3198,7 +3203,7 @@
highlight_cb,
0,
0,
- ! has_tearoff_p,
+ 1,
submenu,
cl_data,
0);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r118037: Fix Gtk+ tearoff not present on Customize Emacs and not at menu top.,
Jan D. <=