Захотелось сделать свой тулбар, который при необходимости увеличивается/уменьшается. Оно впринципе работает, только после выполнения функции (код ниже) управление не передается в Glib::Loop на сколько я понимаю, поскольку как только ф-ия отработает главная нить зависает :( Что не правильно в функции?
sub window_hide_view
{
my $view = shift;
my $screen = Gtk2::Gdk::Screen->get_default;
my $screen_height = $screen->get_height;
my $screen_width = $screen->get_width;
if($view){
for(my $i=5;$i<=$WINDOW_WIDTH;$i+=50){
Glib::Idle->add(
sub {
$widgetfixed->set_size_request($WINDOW_WIDTH,$WINDOW_HEIGHT);
$window->move($screen_width - $WINDOW_WIDTH, $screen_height - ($WINDOW_TOP + $WINDOW_HEIGHT));
return FALSE;
}
);
while( Gtk2->events_pending() ){Gtk2->main_iteration(); }
select(undef,undef,undef,0.2);
}
}
else{
for(my $i=$WINDOW_WIDTH;$i>=5;$i-=50){
Glib::Idle->add(
sub {
$widgetfixed->set_size_request($i,$WINDOW_HEIGHT);
$window->move($screen_width - $i, $screen_height - ($WINDOW_TOP + $WINDOW_HEIGHT));
return FALSE;
}
);
while( Gtk2->events_pending() ){Gtk2->main_iteration(); }
select(undef,undef,undef,0.2);
}
}
print "ok\n";
}