$drawing_area->queue_draw(); make program crash on some systems

Dear Gtk-perlers,

In developing a drawing program in gtk2-perl, I've met a strange situation.

I have a Gtk2::DrawingArea inside a Gtk2::Viewport inside a
Gtk2::ScrolledWindow inside a Gtk2::HBox inside a Gtk2::Table inside a
Gtk2::Window. I would like the DrawingArea (that contains a Cairo Surface)
to be redrawn each time the user clicks on it.

Since the other elements in the table are not changing, I have tried calling




to make the expose sub redraw that part of the window. While this works fine
on one system I have (opensuse 13.1, i586), on another system (also opensuse
13.1, but x86_64), the program crashes with a "BadDrawable" X error:

The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
  (Details: serial 1718 error_code 9 request_code 62 minor_code 0)

I get the expected behaviour (i.e. no crash) on both system if I replace the
above command by


or by 


Am I having luck that the $My_Drawing_Area->queue_draw() works on one
system, or is there a bug somewhere?

Also I wonder about the sanity of calling 


In, say, a 500x500 window (even if it contains a 2000x2000 drawing area as
described above).

Any idea?



View this message in context: 
Sent from the Gtk+ - Perl mailing list archive at Nabble.com.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]