@@ -22,6 +22,7 @@ import {
2222import { Picker } from "../picker.ts" ;
2323
2424let initialized : Promise < void > ;
25+ let zindex = 50 ;
2526
2627export const main : Entrypoint = ( denops ) => {
2728 denops . dispatcher = {
@@ -75,21 +76,29 @@ async function startPicker(
7576 params : ItemPickerParams < unknown , string > & GlobalConfig ,
7677 { signal } : { signal ?: AbortSignal } = { } ,
7778) : Promise < void | true > {
79+ await using stack = new AsyncDisposableStack ( ) ;
7880 const pickerParams = { screen, ...params } ;
79- await using itemPicker = new Picker ( pickerParams ) ;
80- await using actionPicker = new Picker ( {
81- name : "@action" ,
82- screen,
83- source : new ListSource (
84- Object . entries ( params . actions ) . map ( ( [ name , action ] ) => ( {
85- value : name ,
86- detail : action ,
87- } ) ) ,
88- ) ,
89- ...getActionPickerParams ( ) ,
90- } ) ;
81+ const itemPicker = stack . use ( new Picker ( { ...pickerParams , zindex } ) ) ;
82+ const actionPicker = stack . use (
83+ new Picker ( {
84+ name : "@action" ,
85+ screen,
86+ source : new ListSource (
87+ Object . entries ( params . actions ) . map ( ( [ name , action ] ) => ( {
88+ value : name ,
89+ detail : action ,
90+ } ) ) ,
91+ ) ,
92+ ...getActionPickerParams ( ) ,
93+ zindex : zindex + 1 ,
94+ } ) ,
95+ ) ;
9196
92- await using _guardItemPicker = await itemPicker . open ( denops , { signal } ) ;
97+ zindex ++ ;
98+ stack . defer ( ( ) => {
99+ zindex -- ;
100+ } ) ;
101+ stack . use ( await itemPicker . open ( denops , { signal } ) ) ;
93102 while ( true ) {
94103 // Select items
95104 const resultItem = await itemPicker . start (
0 commit comments