Consult for gdk_window_shape_combine_region in GTK3



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);

                               gdk_region_destroy(region);

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

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

                               cairo_region_t *region = cairo_region_create_rectangle(&rect);

                               gdk_window_shape_combine_region(window, region, 0, 0);

                               cairo_region_destroy(region);


   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,
Zhenghua


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