5617ffc79c
Create the surfaces for background shadows at scaled sizes and then draw on them using logical coordinates, by setting the surface device scale accordingly. Use the said surface scale when generating the actual shadow cairo pattern but in such case, to reduce the number of code changes, is better to work in absolute coordinates, and to do so: 1) Create a temporary shadow-spec copy with scaled values to absolute sizes 2) Invert the scaling on the shadow matrix 3) Do the actual painting in absolute coordinates 4) Set the shadow matrix scaling back to the logical coordinates. Finally scale down the created shadow pattern surface size when painting it, applying again a reverse scale to the matrix. https://bugzilla.gnome.org/show_bug.cgi?id=765011 https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/5