VSFilter double-scales the widths of the opaque box in X direction,
which gives much wider boxes than expected (or much less wider boxes)
if ScaleX != 100. Emulate this behavior, even if it is unbelievably
stupid and no doubt a bug in VSFilter.
asc *= scale_y;
desc *= scale_y;
+ // Emulate the WTFish behavior of VSFilter, i.e. double-scale
+ // the widths of the opaque box.
+ adv *= render_priv->state.scale_x * render_priv->font_scale_x;
+ sx *= render_priv->state.scale_x * render_priv->font_scale_x;
+
FT_Vector points[4] = {
{ .x = -sx, .y = asc + sy },
{ .x = adv + sx, .y = asc + sy },