diff --git a/basis/ui/gadgets/glass/glass.factor b/basis/ui/gadgets/glass/glass.factor index af169235b4..945e16150d 100644 --- a/basis/ui/gadgets/glass/glass.factor +++ b/basis/ui/gadgets/glass/glass.factor @@ -63,7 +63,8 @@ TUPLE: popup < wrapper owner ; swap >>owner ; inline M: popup hide-glass-hook - owner>> f >>popup request-focus ; + dup owner>> 2dup popup>> eq? + [ f >>popup request-focus drop ] [ 2drop ] if ; PRIVATE> @@ -75,7 +76,5 @@ popup H{ popup>> focusable-child resend-gesture ; : show-popup ( owner popup visible-rect -- ) - [ ] dip - [ drop dup owner>> (>>popup) ] - [ [ [ owner>> ] keep ] dip show-glass ] - 2bi ; \ No newline at end of file + [ [ dup dup popup>> [ hide-glass ] when* ] dip ] dip + [ drop >>popup drop ] [ show-glass ] 3bi ; \ No newline at end of file