It'd be nice if the attributes to Gtk2::Gdk::Window->new were described a bit, perhaps per below (formatted and a diff), unless I missed it elsewhere. (I went to use it and had to have a dig in the source.) It occurred to me maybe override_redirect could use sv_2bool or whatever on its value instead of SvUV, to allow undef and empty string to mean false too, in the usual way. window = Gtk2::Gdk::Window->new ($parent, $attributes_ref) * $parent (Gtk2::Gdk::Window or undef) * $attributes_ref (scalar) Create and return a new window. parent can be undef to mean the root window of the default screen. attributes_ref is a hashref containing some of the following keys, title string event_mask Gtk2::Gdk::EventMask flags x integer y integer width integer height integer wclass Gtk2::Gdk::WindowClass enum visual Gtk2::Gdk::Visual colormap Gtk2::Gdk::Colormap window_type Gtk2::Gdk::WindowType enum cursor Gtk2::Gdk::Cursor wmclass_name string wmclass_class string override_redirect boolean (integer 0 or 1) window_type is mandatory because it defaults to "root" but of course it's not possible to create a new root window. The other fields get default values zero, empty, unset, etc. my $win = Gtk2::Gdk::Window->new (undef, { window_type => 'toplevel, wclass => 'GDK_INPUT_OUTPUT', x => 0, y => 0, width => 200, height => 100 }); Incidentally, the nicknames for wclass Gtk2::Gdk::WindowClass really are "output" for input-output and "only" for input-only. Those names are a bit odd, but that's what Gtk has. You can, as for any enum, give the full names like "GDK_INPUT_OUTPUT" if desired, for some clarity.
Attachment:
GdkWindow.xs.doc-new.diff
Description: Text Data