Ah, thankyou :) Yes, indeed, if I avoid constructing further contexts,
it works. I can replace this with just calling set_source_rgba() on
the 1 context in *most* cases, though I'd have to have *two* passes
for the graphs, as I draw a 'highlight' line ( lighter colour ) as
well as the 'regular' line that encloses the bars ( and which I call
->fill inside of later ). Still, that's not much more work.

Does anyone know ... would this bug be in the bindings, or in gtk+ or cairo?

Dan

On Wed, Oct 11, 2017 at 1:43 PM, Jeremy Volkening <j...@base2bio.com> wrote:
> On Tue, Oct 10, 2017 at 09:38:03PM +1100, Daniel Kasak wrote:
>>
>> I've cut down my app to a "relatively small" example which doesn't
>> need a database connection or loads of other stuff. It's still 400+
>> lines ( with lots of whitespace ). I know it's asking a lot, but if
>> someone can figure out what I'm doing wrong, I'd be very grateful ...
>
>
> Your issues stem from the creation of multiple contexts referencing the
> DrawingArea surface within the 'draw' callback, i.e.
>
> my $surface = $cairo_context->get_target;
> # and later..
> my $this_stat_context = Cairo::Context->create( $surface );
>
> If you re-write your code without doing this -- just use the context passed
> into the 'draw' signal callback along with save() and restore() -- I think
> you will find your issues disappear. I haven't completely re-written your
> code, but I tested on one small bit and it had the desired effect.
>
> Why this happens is a little bit hazy to me. If you print the values
> passed into the 'draw' callback, you can see that all of the pointers to the
> cairo context are the same for the different DAs. Somehow this gets sorted
> out if you just use the context as given, but my guess is that when you are
> calling get_target() it returns the surface for the first DrawingArea only,
> and then your issues arise.
>
> Regards,
> Jeremy
>
> --
> Civilization is the limitless multiplication of unnecessary necessities.
>                 -- Mark Twain
> _______________________________________________
> gtk-perl-list mailing list
> gtk-perl-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-perl-list
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to