You can always use the all-powerful overrideredirect(1). It's only drawback is your on-top window will be on top on every virtual desktop. The following script uses just about every trick. :-) It shouldn't leak memory with constant use.
#!/usr/bin/perl
use Tk;
my $mw= MainWindow->new();
##################################################################
my $dialogdel = $mw->Toplevel(-bg=>'steelblue');
#my $dialogdel = MainWindow->new(-bg=>'steelblue');
$dialogdel->overrideredirect(1);
$dialogdel->geometry('200x100+600+100');
$dialogdel->configure(-cursor => 'top_left_arrow');
$dialogdel->Label(-text=>"Ready to delete $key_sel",
-bg=>'pink',
-fg=>'black',
-width=>20)->pack(-side=>'top',-fill=>'x');
my $dlabel = $dialogdel->Label(-text=>"Confirm delete $key_sel?",
-bg=>'yellow',
)->pack(-side=>'top');
$dialogdel->Button( -text => 'Delete',
-bg=>'yellow',
-activebackground=>'orange',
-command => sub{print chr(07) })->pack;
$dialogdel->Button( -text => 'Cancel',
-bg=>'red',
-activebackground=>'plum',
-command => sub{$dialogdel->grabRelease;
$dialogdel->withdraw;
}
)->pack(-side=>'right',-anchor=>'e');
$dialogdel->withdraw;
######################################################################
+#3
$mw->Button( -text => 'Delete',
-bg=>'yellow',
-activebackground=>'orange',
-command => \&delete_key)->pack;
MainLoop;
sub delete_key{
$dialogdel->deiconify;
$dialogdel->focus;
$dialogdel->grab;
}