From dca0bd73859e1f6018ba3af508c6c2a28bd1c7f0 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 16 Oct 2010 10:22:46 -0600 Subject: [PATCH] gtk: fix memory management for menus original commit: 3f28042517322ea4a7120e37e7a77c24a3d059f2 --- collects/mred/private/wx/gtk/menu-bar.rkt | 4 +++- collects/mred/private/wx/gtk/menu.rkt | 14 ++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/collects/mred/private/wx/gtk/menu-bar.rkt b/collects/mred/private/wx/gtk/menu-bar.rkt index de8824c4..ce1e887f 100644 --- a/collects/mred/private/wx/gtk/menu-bar.rkt +++ b/collects/mred/private/wx/gtk/menu-bar.rkt @@ -135,7 +135,9 @@ (define (append-menu menu title) (send menu set-parent this) (atomically - (let* ([item (gtk_menu_item_new_with_mnemonic (fixup-mneumonic title))] + (let* ([item (let ([title (fixup-mneumonic title)]) + (as-gtk-allocation + (gtk_menu_item_new_with_mnemonic title)))] [item-wx (new top-menu% [parent this] [gtk item])]) (connect-select item) (set! menus (append menus (list (list item menu item-wx)))) diff --git a/collects/mred/private/wx/gtk/menu.rkt b/collects/mred/private/wx/gtk/menu.rkt index f7f4f973..42cd4e07 100644 --- a/collects/mred/private/wx/gtk/menu.rkt +++ b/collects/mred/private/wx/gtk/menu.rkt @@ -182,11 +182,13 @@ (public [append-item append]) (define (append-item i label help-str-or-submenu chckable?) (atomically - (let ([item-gtk ((if (and chckable? - (not (help-str-or-submenu . is-a? . menu%))) - gtk_check_menu_item_new_with_mnemonic - gtk_menu_item_new_with_mnemonic) - (fixup-mneumonic label))]) + (let ([item-gtk (let ([label (fixup-mneumonic label)]) + (as-gtk-allocation + ((if (and chckable? + (not (help-str-or-submenu . is-a? . menu%))) + gtk_check_menu_item_new_with_mnemonic + gtk_menu_item_new_with_mnemonic) + label)))]) (if (help-str-or-submenu . is-a? . menu%) (let ([submenu help-str-or-submenu]) (let ([gtk (send submenu get-gtk)]) @@ -208,7 +210,7 @@ (define/public (append-separator) (atomically - (let ([item-gtk (gtk_separator_menu_item_new)]) + (let ([item-gtk (as-gtk-allocation (gtk_separator_menu_item_new))]) (set! items (append items (list (list (new separator-item-handler%) item-gtk #f #f)))) (gtk_menu_shell_append gtk item-gtk) (gtk_widget_show item-gtk))))