diff --git a/basis/ui/gadgets/buttons/buttons.factor b/basis/ui/gadgets/buttons/buttons.factor index c8eeb62579..ebac290f4b 100644 --- a/basis/ui/gadgets/buttons/buttons.factor +++ b/basis/ui/gadgets/buttons/buttons.factor @@ -231,11 +231,12 @@ PRIVATE> [ <radio-button> ] <radio-controls> { 5 5 } >>gap ; -: command-button-quot ( gesture command -- quot ) - '[ _ _ invoke-command drop ] ; +: command-button-quot ( target command -- quot ) + '[ _ _ invoke-command ] ; : <command-button> ( target gesture command -- button ) - [ command-string swap ] keep command-button-quot <border-button> ; + [ command-string swap ] keep command-button-quot + '[ drop @ ] <border-button> ; : <toolbar> ( target -- toolbar ) <shelf> diff --git a/basis/ui/gadgets/tables/tables.factor b/basis/ui/gadgets/tables/tables.factor index 073268e58d..003346ca25 100644 --- a/basis/ui/gadgets/tables/tables.factor +++ b/basis/ui/gadgets/tables/tables.factor @@ -33,7 +33,7 @@ TUPLE: table < line-gadget { renderer initial: trivial-renderer } { action initial: [ drop ] } single-click? -{ hook initial: [ ] } +{ hook initial: [ drop ] } { gap initial: 2 } column-widths total-width focus-border-color @@ -274,7 +274,7 @@ PRIVATE> : row-action ( table -- ) dup selected-row - [ swap [ action>> call ] [ hook>> call ] bi ] + [ swap [ action>> call ] [ dup hook>> call ] bi ] [ 2drop ] if ; @@ -336,7 +336,13 @@ PRIVATE> : show-table-menu ( table -- ) [ [ nip ] - [ [ nth-row drop ] [ renderer>> row-value ] [ hook>> ] tri ] 2bi + [ swap select-row ] + [ + [ nth-row drop ] + [ renderer>> row-value ] + [ dup hook>> curry ] + tri + ] 2tri show-operations-menu ] [ drop ] if-mouse-row ; diff --git a/basis/ui/tools/browser/popups/popups.factor b/basis/ui/tools/browser/popups/popups.factor index 8150dc1a08..a759971a00 100644 --- a/basis/ui/tools/browser/popups/popups.factor +++ b/basis/ui/tools/browser/popups/popups.factor @@ -27,7 +27,7 @@ TUPLE: links-popup < wrapper ; '[ @ sorted-links ] <filter> link-renderer [ second ] <search-table> [ invoke-primary-operation ] >>action - dup '[ _ hide-glass ] >>hook + [ hide-glass ] >>hook t >>selection-required? ; : <links-popup> ( model quot title -- gadget ) diff --git a/basis/ui/tools/listener/listener.factor b/basis/ui/tools/listener/listener.factor index a1bf5ce20d..f5974686b6 100644 --- a/basis/ui/tools/listener/listener.factor +++ b/basis/ui/tools/listener/listener.factor @@ -291,13 +291,11 @@ M: object accept-completion-hook 2drop ; [ history>> history-add drop ] [ control-value ] [ select-all ] tri [ parse-lines ] with-compilation-unit ; -:: <debugger-popup> ( interactor error continuation -- popup ) - error continuation error compute-restarts - [ interactor hide-glass ] <debugger> - "Error" <labeled-gadget> ; +: <debugger-popup> ( error continuation -- popup ) + over compute-restarts [ hide-glass ] <debugger> "Error" <labeled-gadget> ; : debugger-popup ( interactor error continuation -- ) - [ [ drop one-line-elt ] 2keep ] dip <debugger-popup> show-listener-popup ; + [ one-line-elt ] 2dip <debugger-popup> show-listener-popup ; : handle-parse-error ( interactor error -- ) dup lexer-error? [ 2dup go-to-error error>> ] when @@ -360,7 +358,7 @@ interactor "completion" f { : listener-thread ( listener -- ) dup listener-streams [ - [ com-follow ] help-hook set + [ com-browse ] help-hook set '[ [ _ input>> ] 2dip debugger-popup ] error-hook set welcome. listener @@ -384,7 +382,7 @@ interactor "completion" f { [ wait-for-listener ] } cleave ; -: listener-help ( -- ) "ui-listener" com-follow ; +: listener-help ( -- ) "ui-listener" com-browse ; \ listener-help H{ { +nullary+ t } } define-command