X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/snom-frontend/blobdiff_plain/2b127e29cae4de25b8fb79f05e0ef3d29df2538c..HEAD:/snom.pl diff --git a/snom.pl b/snom.pl index 608e62f..3acac1b 100755 --- a/snom.pl +++ b/snom.pl @@ -113,6 +113,8 @@ my $window = Gtk2::Window->new('toplevel'); $window->set_title("snom"); $window->signal_connect(delete_event => \&CloseAppWindow); $window->signal_connect(destroy => sub { Gtk2->main_quit; }); + + my $kphandler = $window->signal_connect(key_press_event => \&KBDInput); $window->set_border_width(15); $window->set_resizable(FALSE); @@ -234,17 +236,31 @@ sub activate_icon_cb { } } -my $status_icon = Gtk2::StatusIcon->new_from_file($Bin.'/snom.ico'); -my $menu = Gtk2::Menu->new(); +sub minimize_to_try{ + my ($w, $event) = @_; + if ($event->changed_mask & [ 'iconified', ]){ + $window->hide(); + # Needs to be deiconified after hiding, otherwise show will not behave as expected. + $window->deiconify(); + } +} -my $menuItem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit'); -$menuItem->signal_connect('activate', \&quit_cb, $status_icon); -$menu->append($menuItem); +my $status_icon = Gtk2::StatusIcon->new_from_file($Bin.'/snom.ico'); +if($status_icon->is_embedded){ -$status_icon->set_tooltip('Snom Tray'); -$status_icon->signal_connect('activate', \&activate_icon_cb); -$status_icon->signal_connect('popup-menu', \&popup_menu_cb, $menu); -$status_icon->set_visible(1); + my $menu = Gtk2::Menu->new(); + + my $menuItem = Gtk2::ImageMenuItem->new_from_stock('gtk-quit'); + $menuItem->signal_connect('activate', \&quit_cb, $status_icon); + $menu->append($menuItem); + + $status_icon->set_tooltip('Snom Tray'); + $status_icon->signal_connect('activate', \&activate_icon_cb); + $status_icon->signal_connect('popup-menu', \&popup_menu_cb, $menu); + $status_icon->set_visible(1); + + $window->signal_connect('window-state-event',\&minimize_to_try); +} ########################################################################333 $window->add($mainbox);