LINUX.ORG.RU

gtk2 - как плавно изменить размер окна?


0

0

Захотелось сделать свой тулбар, который при необходимости увеличивается/уменьшается. Оно впринципе работает, только после выполнения функции (код ниже) управление не передается в 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";
}
★★★

Сопротивление бесползено, мой stumpwm всё равно его на весь экран сразу натянет!

mv ★★★★★
()

что у тебя за язык вообще такой, что в одних местах ты возвращаешь FALSE, а в других - фигу с маслом?

anonymous
()
Ответ на: комментарий от anonymous

> что у тебя за язык вообще такой

gtk2-perl но все должно быть по смыслу понятно

Mrak ★★★
() автор топика

Циклы while, зачем они?

k_andy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.