Как я могу проверить, нажата ли клавиша вместе с определенным модификатором в Gtk3 ? Например, здесь я хочу проверить, нажата ли CTRL + s :
use feature qw(say);
use strict;
use warnings;
use Gtk3 '-init';
use Glib qw(TRUE FALSE);
my $window = Gtk3::Window->new('toplevel');
$window->set_title('Hello world');
$window->set_position('center');
$window->set_default_size(500, 500);
$window->signal_connect('delete-event' => sub {
Gtk3->main_quit();
});
$window->signal_connect('key-press-event' => sub { handle_key( @_ ) } );
$window->show_all();
Gtk3->main();
sub handle_key {
my ( $widget, $event) = @_;
my $key = Gtk3::Gdk::keyval_name( $event->keyval );
if ( ($key eq 's') && control_pressed( $event ) ) {
say "CTRL+S";
}
return FALSE; # FALSE -> means propagate key further
}
Как мне определить функцию control_pressed()
выше?