Revert https://github.com/WayfireWM/wf-shell/commit/6e3ac5da8d24 until x11-toolkits/gtkmm30 is updated to 3.24 or later. ../src/background/background.cpp:33:35: error: no member named 'create_surface_from_pixbuf' in namespace 'Gdk::Cairo' to_image.source = Gdk::Cairo::create_surface_from_pixbuf(image, ~~~~~~~~~~~~^ --- src/background/background.cpp.orig 2020-03-21 19:18:51 UTC +++ src/background/background.cpp @@ -21,19 +21,17 @@ void BackgroundDrawingArea::show_image(Glib::RefPtrget_scale_factor()); + to_image.pbuf = image; + to_image.x = offset_x; + to_image.y = offset_y; + fade.animate(from_image.pbuf ? 0.0 : 1.0, 1.0); - to_image.x = offset_x / this->get_scale_factor(); - to_image.y = offset_y / this->get_scale_factor(); - fade.animate(from_image.source ? 0.0 : 1.0, 1.0); - Glib::signal_idle().connect_once([=] () { this->queue_draw(); }); @@ -41,19 +39,25 @@ void BackgroundDrawingArea::show_image(Glib::RefPtr& cr) { - if (!to_image.source) + if (!to_image.pbuf) return false; if (fade.running()) queue_draw(); - cr->set_source(to_image.source, to_image.x, to_image.y); + Gdk::Cairo::set_source_pixbuf(cr, to_image.pbuf, to_image.x, to_image.y); + cr->rectangle(0, 0, to_image.pbuf->get_width(), to_image.pbuf->get_height()); cr->paint_with_alpha(fade); - if (!from_image.source) + + if (!from_image.pbuf) return false; - cr->set_source(from_image.source, from_image.x, from_image.y); + Gdk::Cairo::set_source_pixbuf(cr, from_image.pbuf, + from_image.x, from_image.y); + cr->rectangle(0, 0, from_image.pbuf->get_width(), + from_image.pbuf->get_height()); cr->paint_with_alpha(1.0 - fade); + return false; } --- src/background/background.hpp.orig 2020-03-21 19:18:51 UTC +++ src/background/background.hpp @@ -11,9 +11,9 @@ class WayfireBackground; class BackgroundImage { - public: + public: double x, y; - Cairo::RefPtr source; + Glib::RefPtr pbuf; }; class BackgroundDrawingArea : public Gtk::DrawingArea