From c57c84721fd1c43e8153c22f30fdd0c4539d965b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 15 Oct 2010 12:39:11 -0600 Subject: [PATCH] gtk menu-bar fixes --- collects/mred/private/wx/gtk/menu-bar.rkt | 26 ++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/collects/mred/private/wx/gtk/menu-bar.rkt b/collects/mred/private/wx/gtk/menu-bar.rkt index 4771e446b2..de8824c47c 100644 --- a/collects/mred/private/wx/gtk/menu-bar.rkt +++ b/collects/mred/private/wx/gtk/menu-bar.rkt @@ -114,20 +114,22 @@ (gtk_label_set_text_with_mnemonic (gtk_bin_get_child item-gtk) (fixup-mneumonic str))))) - (def/public-unimplemented enable-top) + (define/public (enable-top pos on?) + (gtk_widget_set_sensitive (car (list-ref menus pos)) on?)) (define/public (delete which pos) - (set! menus (let loop ([menus menus] - [pos pos]) - (cond - [(null? menus) menus] - [(zero? pos) - (gtk_container_remove gtk (caar menus)) - (gtk_menu_item_set_submenu (caar menus) #f) - (cdr menus)] - [else (cons (car menus) - (loop (cdr menus) - pos))])))) + (atomically + (set! menus (let loop ([menus menus] + [pos pos]) + (cond + [(null? menus) menus] + [(zero? pos) + (gtk_container_remove gtk (caar menus)) + (gtk_menu_item_set_submenu (caar menus) #f) + (cdr menus)] + [else (cons (car menus) + (loop (cdr menus) + (sub1 pos)))]))))) (public [append-menu append]) (define (append-menu menu title)