Hi experts,

   I want to consult for the API gdk_window_shape_combine_region.

   We are upgrading our product from GTK2 to GTK3.

   Now we meet an issue for gdk_window_shape_combine_region

   We have an app, it will create a xwindow using XCreateWindow, and pass its 
xwindow id to another process which will use libcef to render video content to 
this xwindow.

   Now in the app, we create gtk window from the xwindow using 
gdk_x11_window_foreign_new_for_display, use gdk_window_input_shape_combine_mask 
to get the mouse movement be handled, and when user moves mouse over the 
window, we want to make some part of the window transparent.

   In GTK2, we use gdk_window_shape_combine_mask, now we have to use 
gdk_window_shape_combine_region in GTK3.

   The issue is, for example, below code works fine if link GTK2 lib:

                               GdkRectangle rect = { 0, 0, 100, 100 };

                               GdkRegion *region = gdk_region_rectangle(&rect);

                               gdk_window_shape_combine_region(window, region, 
0, 0);


   But the equivalent code doesn’t work if link GTK3 lib:

                               cairo_rectangle_int_t rect = { 0, 0, 100, 100 };

                               cairo_region_t *region = 

                               gdk_window_shape_combine_region(window, region, 
0, 0);


   I find in GTK2, I can get signal for “draw” and “expose-event” in the app, 
but in GTK3, I cannot in the app.

   I find if I simplely create a GdkWindow and call 
gdk_window_shape_combine_region over it, it works; but above usage that render 
content in another process doesn’t. Does it mean in GTK3, 
gdk_window_shape_combine_region doesn’t support such kind of usage anymore? Is 
there any way can help to achieve it in GTK3?

Thanks & Regards,
gtk-app-devel-list mailing list

Reply via email to