in reply to Re: Tk centering main window on screen.
in thread Tk centering main window on screen.

OK, consider the following example. The windows are exactly the same size, yet appear in different positions. What do I need to to do the 2nd popup to get it to be centered in the main window?

use strict; use warnings; use Tk; my $mw = MainWindow -> new; $mw -> minsize (qw(600 400)); my $button = $mw -> Button ( -text => '1st popop', -command => \&popup1, ) -> pack; my $other_button = $mw -> Button ( -text => '2nd popup', -command => \&popup2, ) -> pack; MainLoop; sub popup1 { print "Main window geometry = ".$mw -> geometry."\n"; my $popup1 = $mw -> Toplevel; $popup1 -> withdraw; for (1..10) { my $label = $popup1 -> Label ( -text => "This is a very very very long label", ) -> pack; } $popup1 -> Popup ( -popover => $mw, -overanchor => 'c', -popanchor => 'c', ); print "1st popup geom = ".$popup1 -> geometry."\n\n"; } sub popup2 { print "Main window geometry = ".$mw -> geometry."\n"; my $popup2 = $mw -> Toplevel; $popup2 -> withdraw; my $label = $popup2 -> Label ( -text => "This is a label", ) -> pack; $popup2 -> minsize (qw(162 190)); $popup2 -> Popup ( -popover => $mw, -overanchor => 'c', -popanchor => 'c', ); print "2nd popup geom = ".$popup2 -> geometry."\n\n"; }