]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-loading-window.c
[libview] Fix build with gtk2
[evince.git] / libview / ev-loading-window.c
index 6c60c344db920b6f35fb6222f65c8c504030fb10..a3dd3b37fcf93c01b05bebaed72a2431bc88094d 100644 (file)
@@ -95,11 +95,9 @@ ev_loading_window_init (EvLoadingWindow *window)
 
        gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
+       gtk_window_set_type_hint (gtk_window, GDK_WINDOW_TYPE_HINT_NOTIFICATION);
        gtk_window_set_accept_focus (gtk_window, FALSE);
-       gtk_window_set_focus_on_map (gtk_window, FALSE);
        gtk_window_set_decorated (gtk_window, FALSE);
-       gtk_window_set_skip_taskbar_hint (gtk_window, TRUE);
-       gtk_window_set_skip_pager_hint (gtk_window, TRUE);
        gtk_window_set_resizable (gtk_window, FALSE);
 
        style = gtk_widget_get_style (widget);
@@ -179,7 +177,12 @@ ev_loading_window_size_allocate (GtkWidget      *widget,
                                 GtkAllocation  *allocation)
 {
        EvLoadingWindow *window = EV_LOADING_WINDOW (widget);
-       GdkPixmap       *mask;
+#if GTK_CHECK_VERSION (2, 90, 8)
+        cairo_surface_t *surface;
+        cairo_region_t *shape;
+#else
+       GdkPixmap *mask;
+#endif
        cairo_t         *cr;
        double           r;
 
@@ -191,8 +194,15 @@ ev_loading_window_size_allocate (GtkWidget      *widget,
        window->width = allocation->width;
        window->height = allocation->height;
 
-       mask = gdk_pixmap_new (NULL, window->width, window->height, 1);
-       cr = gdk_cairo_create (GDK_DRAWABLE (mask));
+#if GTK_CHECK_VERSION (2, 90, 8)
+        surface = cairo_image_surface_create (CAIRO_FORMAT_A8,
+                                              window->width,
+                                              window->height);
+       cr = cairo_create (surface);
+#else
+        mask = gdk_pixmap_new (NULL, window->width, window->height, 1);
+        cr = gdk_cairo_create (GDK_DRAWABLE (mask));
+#endif
 
        cairo_save (cr);
        cairo_rectangle (cr, 0, 0, window->width, window->height);
@@ -207,8 +217,16 @@ ev_loading_window_size_allocate (GtkWidget      *widget,
 
        cairo_destroy (cr);
 
+#if GTK_CHECK_VERSION (2, 90, 8)
+        shape = gdk_cairo_region_create_from_surface (surface);
+        cairo_surface_destroy (surface);
+
+        gtk_widget_shape_combine_region (widget, shape);
+        cairo_region_destroy (shape);
+#else
        gtk_widget_shape_combine_mask (widget, mask, 0, 0);
        g_object_unref (mask);
+#endif
 }
 
 static void