Infelizmente, alguns objetos do Cairo ainda não são introspectivos:
Se você se sentir aventureiro, pode tentar adicionar suporte por conta própria. Caso contrário, você precisa encontrar uma solução alternativa.
Eu estou tentando criar uma janela Gtk3 com uma máscara de entrada personalizada, para que a janela não receba nenhum clique do mouse. Este é um trecho de código que eu criei:
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w , h)
surface_ctx = cairo.Context(surface)
surface_ctx.set_source_rgba(1.0, 1.0, 1.0, 0.0)
surface_ctx.set_operator(cairo.OPERATOR_SOURCE)
surface_ctx.paint()
reg = Gdk.cairo_region_create_from_surface(surface)
widget.input_shape_combine_region(reg)
Infelizmente, a chamada para Gdk.cairo_region_create_from_surface () falha com este erro:
Traceback (most recent call last):
File "../kazam/frontend/window_region.py", line 144, in cb_draw reg = Gdk.cairo_region_create_from_surface(surface)
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43, in function return info.invoke(*args, **kwargs)
TypeError: Couldn't find conversion for foreign struct 'cairo.Region'
Após inspecionar o arquivo Gdk-3.0.gir, estou um pouco confuso. Claramente estou fazendo algo errado (ou há algo errado com a introspecção?). Qualquer conselho será apreciado.
Infelizmente, alguns objetos do Cairo ainda não são introspectivos:
Se você se sentir aventureiro, pode tentar adicionar suporte por conta própria. Caso contrário, você precisa encontrar uma solução alternativa.