RE: DialogBox not Being Displayed

"Jack D" <[email protected]> Mon, 16 Jul 2007 17:19:22 -0600
Newsgroups gmane.comp.lang.perl.tk
Message-ID <[email protected]>
 
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Steve Waltner
> Sent: Monday, July 16, 2007 12:46 PM
> To: [email protected]
> Subject: DialogBox not Being Displayed
> 
> We've been running ActivePerl 5.8.0 on Windows for some time 
> and recently upgraded to ActivePerl 5.8.8. Along the way (ActivePerl
> 5.8.4) the Perl Tk module was upgraded to 804.027. 
> Previously, it had been using 800.???. While this fixed the 
> original problem we had, it introduced a problem where the 
> behavior of DialogBox changed and our dialog boxes are no 
> longer being displayed. A code snippet that demonstrates this is:
> 
> =======
> use Tk;
> use Tk::DialogBox;
> 
> $main = MainWindow->new();    # this creates the main dialog box
> $dialog = $main->DialogBox (-title => "TITLE BAR TEXT", 
> -buttons => [ "Button 1","Button 2" ] ); # this creates the 
> desired box
> $main->withdraw();            # this makes the main dialog 
> box invisible
> $button = $dialog->Show();    # this makes the desired dialog 
> box appear
> $main->destroy();             # this destroys the main dialog box
> print "Button pushed: $button\n";
> =======
> 
> The problem is that the user wants to hide the main window 
> and still show the DialogBox. With version 4.x of 
> DialogBox.pm, the "withdraw"  
> that hides $main also keeps $dialog from being shown on the screen.

This code has introduces a "transient" call likely in order to avoid having
the window get hidden beneath the main window (which was a problem in 800).
Unfortunately this has the side effect as you note here - i.e. If the main
window is withdrawn - so is the dialog.

> 
> How should one code it where you hide the main Tk window, but 
> are still allowed to show a DialogBox created off the main window?

The fix is to add the following line after you create your DialogBox object.

$dialog->transient('');

HTH
Jack

--++**==--++**==--++**==--++**==--++**==--++**==--++**==
ptk mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/ptk