https://bugzilla.gnome.org/show_bug.cgi?id=727452 gtk+ | Backend: Wayland | 3.12.x
--- Comment #1 from Simon McVittie <simon.mcvit...@collabora.co.uk> 2014-04-01 18:28:34 UTC --- Created an attachment (id=273425) View: https://bugzilla.gnome.org/attachment.cgi?id=273425 Review: https://bugzilla.gnome.org/review?bug=727452&attachment=273425 gdk_window_impl_wayland_begin_paint_region: always use an intermediate buffer GtkWindowImplWayland tries to optimize by doing the Gtk drawing directly into the same buffer it gives to Wayland, as long as Wayland is not using that buffer right now. Normally, this would be fine, because we clear that buffer to the window's background pattern with gdk_window_clear_backing_region() before painting it. However, if you're making a fancy composited shell with semitransparent bits, the background pattern might itself have an alpha channel. If it does, at the moment we just paint it over the top of whatever happens to be left in the buffer from the previous frame, which will shine through any areas with non-trivial alpha. As a quick hack around this, return TRUE, which means Gtk will allocate a new, blank (rgba(0,0,0,0)) image surface with gdk_wayland_window_create_similar_image_surface(), do the Gtk-level drawing into that, and copy its contents into impl->cairo_surface when painting has finished. --- I know this is a hack, but it works, and might point someone towards a better-quality solution. -- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ Wayland-bugs mailing list Wayland-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-bugs