in xvfb there is no keymap, so that parts of the tests that rely on it fail. --- a/t/GtkBindings.t +++ b/t/GtkBindings.t @@ -35,6 +35,12 @@ flags => ['run-last','action'], class_closure => \&do_mysig_with_float }, }; + +use Gtk2::Gdk::Keysyms; +my $display = Gtk2::Gdk::Display -> get_default(); +my $keymap = Gtk2::Gdk::Keymap -> get_for_display ($display); +my(@other_keys) = $keymap -> get_entries_for_keyval($Gtk2::Gdk::Keysyms{ Escape }); + my $mysig_seen; sub do_mysig { #Test::More::diag ("mysig runs"); @@ -154,7 +160,10 @@ # As of Gtk 2.12 $gtkobj->bindings_activate() only actually works on a # Gtk2::Widget, not a Gtk2::Object, hence using My::Widget to exercise # add_path() instead of My::Object. -{ +SKIP: { + if (scalar(@other_keys) == 0) { + skip "Needs a keymap", 5; + } my $my_widget_bindings = Gtk2::BindingSet->find('my_widget_bindings'); ok ($my_widget_bindings, 'find() of RC parsed bindings'); @@ -374,12 +383,16 @@ # my $mywidget = My::Widget->new; + SKIP: { + if (scalar(@other_keys) == 0) { + skip "Needs a keymap", 2; + } $mywidgetsig_seen = 0; - ok ($mywidget->bindings_activate (Gtk2::Gdk->keyval_from_name('Return'),[]), - 'before entry_skip(), bindings_activate return true on mywidget'); - is ($mywidgetsig_seen, 1, - 'before entry_skip(), bindings_activate runs mywidgetsig on mywidget'); - + ok ($mywidget->bindings_activate (Gtk2::Gdk->keyval_from_name('Return'),[]), + 'before entry_skip(), bindings_activate return true on mywidget'); + is ($mywidgetsig_seen, 1, + 'before entry_skip(), bindings_activate runs mywidgetsig on mywidget'); + } $skip_bindings->add_path ('widget-class', 'My__Widget', Gtk2::GTK_PATH_PRIO_HIGHEST);