< prev index next >

modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp

Print this page
rev 9734 : 8087516: Conditional support for GTK 3 on Linux
Reviewed-by:

@@ -686,11 +686,11 @@
     }
 
     mainEnv->CallVoidMethod(pixels, jPixelsAttachData, PTR_TO_JLONG(&pixbuf));
 
     if (!EXCEPTION_OCCURED(mainEnv)
-            && gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL, NULL)) {
+            && glass_gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL)) {
         gdk_property_change(requestor, property, target,
                 8, GDK_PROP_MODE_REPLACE, (guchar *)buffer, size);
         result = TRUE;
     }
     g_object_unref(pixbuf);

@@ -1210,13 +1210,11 @@
 
     screen_changed();
 
     gtk_widget_realize(widget);
 
-    GdkRegion* region = gdk_region_new();
-    gdk_window_input_shape_combine_region(gtk_widget_get_window(widget), region, 0,0);
-    gdk_region_destroy(region);
+    glass_window_input_shape_combine_region(gtk_widget_get_window(widget));
 
     gtk_widget_set_app_paintable(widget, TRUE);
 
     g_signal_connect(G_OBJECT(widget), "expose-event", G_CALLBACK(on_expose), this);
     g_signal_connect(G_OBJECT(widget), "screen-changed", G_CALLBACK(on_screen_changed), this);

@@ -1229,23 +1227,19 @@
     gtk_widget_show_all(widget);
 }
 
 void DragView::View::screen_changed() {
     GdkScreen *screen = gtk_widget_get_screen(widget);
-    GdkColormap *colormap = gdk_screen_get_rgba_colormap(screen);
 
-    if (!colormap || !gdk_screen_is_composited(screen)) {
+    glass_configure_window_transparency(widget, true);
+
+    if (!gdk_screen_is_composited(screen)) {
         if (!is_offset_set) {
             offset_x = 1;
             offset_y = 1;
         }
     }
-
-    if (!colormap) {
-        colormap = gdk_screen_get_rgb_colormap(screen);
-    }
-    gtk_widget_set_colormap(widget, colormap);
 }
 
 void DragView::View::expose() {
     cairo_t *context = gdk_cairo_create(gtk_widget_get_window(widget));
 
< prev index next >