--- deliantra/Deliantra-Client/bin/cfplus 2006/06/26 21:59:04 1.80 +++ deliantra/Deliantra-Client/bin/cfplus 2006/06/28 09:42:40 1.81 @@ -844,6 +844,11 @@ my $METASERVER_ATIME; sub update_metaserver { + my ($metaserver_dialog) = @_; + + $METASERVER = $metaserver_dialog + if defined $metaserver_dialog; + return if $METASERVER_ATIME > time; $METASERVER_ATIME = time + 60; @@ -941,6 +946,10 @@ } sub metaserver_dialog { + my $vbox = new CFClient::UI::VBox; + my $table = new CFClient::UI::Table; + $vbox->add (new CFClient::UI::ScrolledWindow expand => 1, child => $table); + my $dialog = new CFClient::UI::FancyFrame title => "Server List", name => 'metaserver_dialog', @@ -948,18 +957,15 @@ y => 'center', z => 3, force_h => $::HEIGHT * 0.4, - child => (my $vbox = new CFClient::UI::VBox), + child => $vbox, has_close_button => 1, + table => $table, on_visibility_change => sub { - update_metaserver if $_[1]; + update_metaserver ($_[0]) if $_[1]; 0 }, ; - $dialog->{table} = new CFClient::UI::Table; - - $vbox->add (new CFClient::UI::ScrolledWindow expand => 1, child => $dialog->{table}); - $dialog } @@ -984,8 +990,6 @@ } ); - $METASERVER = metaserver_dialog; - $vbox->add (new CFClient::UI::Button expand => 1, text => "Server List", @@ -1281,6 +1285,7 @@ force_w => $WIDTH * 9/10, force_h => $HEIGHT * 9/10, title => "Inventory", + name => "inventory_window", has_close_button => 1, ; @@ -1580,6 +1585,8 @@ has_close_button => 1, ; + $METASERVER = metaserver_dialog; + $SETUP_DIALOG->add ($SETUP_NOTEBOOK = new CFClient::UI::Notebook expand => 1, debug => 1, filter => new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1);