diff -ur cvs/gtk2-perl-xs/Gtk2-MozEmbed/examples/pumzilla Gtk2-MozEmbed-0.03/examples/pumzilla --- cvs/gtk2-perl-xs/Gtk2-MozEmbed/examples/pumzilla 2005-04-05 13:53:19.000000000 +0000 +++ Gtk2-MozEmbed-0.03/examples/pumzilla 2005-04-06 12:33:50.291954312 +0000 @@ -133,6 +133,19 @@ $forward -> set_sensitive($embed -> can_go_forward()); $progress -> set_fraction(0); + + # XXX: calling get_content_domwindow before $pumzilla->show_all() + # (at bottom) causes a segfault - not sure why + my $browser = $embed -> get_nsIWebBrowser(); + my $window = $browser -> get_content_domwindow(); + if (defined $window) { + print "original window name: ", $window -> get_name, $/; + $window -> set_name('pummy'); + print "new window name: ", $window -> get_name, $/; + } else { + print "browser has no DOM Window\n"; + } + }); $embed -> signal_connect(progress => sub { @@ -167,7 +180,8 @@ my %props = (); foreach my $prop (qw(char_code key_code ctrl_key shift_key alt_key meta_key - event_phase bubbles cancelable detail)) { + event_phase bubbles cancelable + type time_stamp detail)) { my $method = "get_$prop"; $props{$prop} = $event -> $method; } @@ -191,7 +205,8 @@ my %props = (); foreach my $prop (qw(screen_x screen_y client_x client_y ctrl_key shift_key alt_key meta_key button - event_phase bubbles cancelable detail)) { + event_phase bubbles cancelable + type detail)) { next if ($prop eq 'button' or $prop eq 'detail') and ($signal eq 'dom_mouse_over' or $signal eq 'dom_mouse_out'); my $method = "get_$prop"; diff -ur cvs/gtk2-perl-xs/Gtk2-MozEmbed/gtkmozembed2perl.h Gtk2-MozEmbed-0.03/gtkmozembed2perl.h --- cvs/gtk2-perl-xs/Gtk2-MozEmbed/gtkmozembed2perl.h 2005-04-05 13:53:19.000000000 +0000 +++ Gtk2-MozEmbed-0.03/gtkmozembed2perl.h 2005-04-06 12:27:32.441396328 +0000 @@ -35,6 +35,7 @@ #endif #include +#include /* XXX: uneasy that it says "internal" */ #include "gtkmozembed2perl-version.h" #if 1 /* FIXME: !GTK_MOZ_EMBED_CHECK_VERSION (x, y, z) */ diff -ur cvs/gtk2-perl-xs/Gtk2-MozEmbed/xs/GtkMozEmbed.xs Gtk2-MozEmbed-0.03/xs/GtkMozEmbed.xs --- cvs/gtk2-perl-xs/Gtk2-MozEmbed/xs/GtkMozEmbed.xs 2005-04-05 13:53:19.000000000 +0000 +++ Gtk2-MozEmbed-0.03/xs/GtkMozEmbed.xs 2005-04-06 12:29:38.316260440 +0000 @@ -537,6 +537,34 @@ OUTPUT: RETVAL +=for apidoc + +This method gets the nsIWebBrowser for this window. +It is only available if Mozilla::DOM was installed +before building Gtk2::MozEmbed. + +Note: it seems that this will return NULL before you've called `show_all' +on your Gtk2::Window object, so check if this returns undef. + +=cut + +## void gtk_moz_embed_get_nsIWebBrowser (GtkMozEmbed *embed, nsIWebBrowser **retval) + +#ifdef __cplusplus /* implies Mozilla::DOM is installed */ + +nsIWebBrowser * +gtk_moz_embed_get_nsIWebBrowser (embed) + GtkMozEmbed *embed + PREINIT: + nsIWebBrowser *browser; + CODE: + gtk_moz_embed_get_nsIWebBrowser (embed, &browser); + RETVAL = browser; + OUTPUT: + RETVAL + +#endif + # --------------------------------------------------------------------------- # =for object Gtk2::MozEmbed::main