BBS-Perm
view release on metacpan or search on metacpan
lib/BBS/Perm.pm view on Meta::CPAN
}
);
}
return $self;
}
sub _clean { # be called when an agent exited
my $self = shift;
$self->term->clean;
if ( $self->term->term ) {
$self->window->set_title( $self->term->title );
}
else {
# $self->window->set_title($self->config->setting('global')->{title} ||
# 'bbs-perm' );
Gtk2->main_quit;
}
}
sub _switch {
my ( $self, $direct ) = @_;
$self->term->switch($direct);
$self->window->set_title( $self->term->title );
}
sub _register_accel {
my $self = shift;
my %accel = (
quit => 'MW-q',
copy => 'MW-c',
paste => 'MW-v',
fullscreen => 'MW-f',
close_tab => 'MW-w',
left_tab => 'M-[',
right_tab => 'M-]',
feed => 'M-f',
$self->config->setting('global')->{shortcuts}
? %{ $self->config->setting('global')->{shortcuts} }
: ()
);
my $fullscreen = 0;
my @accels = (
[
$self->_parse_shortcut( $accel{quit} ),
['mask'],
sub { Gtk2->main_quit }
],
[
$self->_parse_shortcut( $accel{close_tab} ),
['mask'],
sub { $self->term->clean }
],
[
$self->_parse_shortcut( $accel{copy} ),
['mask'],
sub {
my $focus = $self->window->get_focus;
$focus->copy_clipboard if $focus;
}
],
[
$self->_parse_shortcut( $accel{paste} ),
['mask'],
sub {
my $focus = $self->window->get_focus;
$focus->paste_clipboard if $focus;
}
],
[
$self->_parse_shortcut( $accel{fullscreen} ),
['mask'],
sub {
if ($fullscreen) {
$self->window->unfullscreen;
$fullscreen = 0;
}
else {
$self->window->fullscreen;
$fullscreen = 1;
}
}
],
[
$self->_parse_shortcut( $accel{left_tab} ),
['mask'],
sub { $self->_switch(-1) }
],
[
$self->_parse_shortcut( $accel{right_tab} ),
['mask'],
sub { $self->_switch(1) }
],
);
if ( $component{Feed} ) {
push @accels, [
$self->_parse_shortcut( $accel{feed} ),
['mask'],
sub {
if ( $self->feed->entry->has_focus ) {
$self->term->term->grab_focus if $self->term->term;
}
else {
$self->feed->entry->grab_focus;
}
},
];
}
if ( $component{URI} ) {
for my $key ( 0 .. 9 ) {
push @accels, [
$key,
['mod1-mask', 'super-mask'],
['mask'],
sub {
my $uri;
if ( $key > 0 ) {
if ( $key == 9 ) {
# 9 means last one
$uri = $self->uri->uri->[-1];
}
else {
$uri = $self->uri->uri->[ $key - 1 ];
}
}
( run in 2.945 seconds using v1.01-cache-2.11-cpan-df04353d9ac )