diff --git a/pkgs/drracket-pkgs/drracket-test/tests/drracket/no-write-and-frame-leak.rkt b/pkgs/drracket-pkgs/drracket-test/tests/drracket/no-write-and-frame-leak.rkt index dc9eb2026f..f6a4fb9f22 100644 --- a/pkgs/drracket-pkgs/drracket-test/tests/drracket/no-write-and-frame-leak.rkt +++ b/pkgs/drracket-pkgs/drracket-test/tests/drracket/no-write-and-frame-leak.rkt @@ -17,12 +17,15 @@ This test checks: that it opens, that it catches a GC message, and that it closes) + - that the reorder tabs method doesn't break + |# (require "private/drracket-test-util.rkt" drracket/private/local-member-names racket/gui/base framework + rackunit string-constants) (define (main) @@ -40,6 +43,7 @@ This test checks: #:prefs '([plt:framework-pref:drracket:online-compilation-default-on #f]) (λ () (define drr (wait-for-drracket-frame)) + (check-reorder-tabs drr) (check-log-panel drr) (check-menus drr) @@ -169,6 +173,25 @@ This test checks: (process-container (send frame get-menu-bar)) (check-shortcuts)) +(define (check-reorder-tabs drr) + (test:menu-select "File" "New") + (define drr2 (wait-for-new-frame drr)) + + (send drr2 create-new-tab) + (send drr2 create-new-tab) + (define tabs (send drr2 get-tabs)) + + (send drr2 reorder-tabs (reverse (range (length tabs)))) + (define new-tabs (send drr2 get-tabs)) + (check-equal? new-tabs (reverse tabs)) + + (send drr2 reorder-tabs (reverse (range (length tabs)))) + (define new-tabs2 (send drr2 get-tabs)) + (check-equal? new-tabs2 tabs) + + (test:menu-select "File" (if (eq? (system-type) 'unix) "Close" "Close Window")) + (wait-for-new-frame drr2)) + (define (check-log-panel drr) (define (find-log-messages-message) diff --git a/pkgs/drracket-pkgs/drracket-test/tests/drracket/reorder-tabs.rkt b/pkgs/drracket-pkgs/drracket-test/tests/drracket/reorder-tabs.rkt deleted file mode 100644 index 124370061d..0000000000 --- a/pkgs/drracket-pkgs/drracket-test/tests/drracket/reorder-tabs.rkt +++ /dev/null @@ -1,21 +0,0 @@ -#lang racket/base -(require "private/drracket-test-util.rkt" - racket/list - racket/class - rackunit) - -(fire-up-drracket-and-run-tests - (λ () - (define drs (wait-for-drracket-frame)) - (send drs create-new-tab) - (send drs create-new-tab) - (define tabs (send drs get-tabs)) - - (send drs reorder-tabs (reverse (range (length tabs)))) - (define new-tabs (send drs get-tabs)) - (check-equal? new-tabs (reverse tabs)) - - (send drs reorder-tabs (reverse (range (length tabs)))) - (define new-tabs2 (send drs get-tabs)) - (check-equal? new-tabs2 tabs) - )) diff --git a/pkgs/drracket-pkgs/drracket/drracket/private/main.rkt b/pkgs/drracket-pkgs/drracket/drracket/private/main.rkt index db06820042..f82ae90bd7 100644 --- a/pkgs/drracket-pkgs/drracket/drracket/private/main.rkt +++ b/pkgs/drracket-pkgs/drracket/drracket/private/main.rkt @@ -747,10 +747,16 @@ (when frame (send frame next-tab))))]) + (define mprefix (if (eq? (system-type) 'windows) + (list* 'alt 'shift (get-default-shortcut-prefix)) + (cons 'shift (get-default-shortcut-prefix)))) + (new menu-item% [parent windows-menu] [label (string-constant move-current-tab-right)] [demand-callback dc] + [shortcut-prefix mprefix] + [shortcut #\]] [callback (λ (item _) (let ([frame (find-frame item)]) (when frame @@ -760,6 +766,8 @@ [parent windows-menu] [label (string-constant move-current-tab-left)] [demand-callback dc] + [shortcut-prefix mprefix] + [shortcut #\[] [callback (λ (item _) (let ([frame (find-frame item)]) (when frame