> Most 2d graphic libs do not support that. Cairo does not, cairo on linux uses 
> gtkdrawingarea for that.

Ah, I'm on Linux and that might be why I was able to get input. I just had a 
look and I'm using the Python C FFI for both XCB and Cairo, calling `connection 
= xcffib.connect()` and then `connection.poll_for_event()` to get input events.

The drawing area is a `cairocffi.XCBSurface` ([initialized 
here](https://github.com/asrp/guitktk/blob/master/xcb_doc.py#L44)). I think 
that doesn't have any GTK in it (but I haven't looked inside the wrappers) but 
the events are definitely coming from X.

In any case, I don't mind using two different libraries for drawing and input 
if I can get the coordinates to match.

> Note, when people say canvas, some have graphic object handling in mind. But 
> Cairo just draws shapes, it does not store whole objects internally.

Good question. I don't need managed object and prefer to have an easy way to 
route around existing management if the library offers this (I think that's 
what I did for Tk but don't quite remember). This is because I want to write my 
own object layer on top.

> Maybe you want Nim Pixi of treeform. Pixi is similar to cairo.

Looks like this is the second mention of Pixie so I'll definitely have a look.

Is Raylib good for 2d? I'm remember trying to use OpenGL at some point (with 
Python, not Nim) and while it worked, I was always fighting the abstraction 
layer a bit.

Reply via email to