compositor: fix fan_debug mode

- make it respect output transforms by making sure the uniforms are
  up-to-date

- properly restore the current shader program, in case it was
  overridden

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
diff --git a/src/compositor.c b/src/compositor.c
index 918b455..4288e89 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1269,7 +1269,7 @@
 	glUniform4fv(compositor->solid_shader.color_uniform, 1,
 			color[color_idx++ % ARRAY_SIZE(color)]);
 	glDrawElements(GL_LINES, nelems, GL_UNSIGNED_SHORT, buffer);
-	glUseProgram(surface->shader->program);
+	glUseProgram(compositor->current_shader->program);
 	free(buffer);
 }
 
@@ -1369,6 +1369,11 @@
 
 	glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
 
+	if (ec->fan_debug) {
+		weston_compositor_use_shader(ec, &ec->solid_shader);
+		weston_shader_uniforms(&ec->solid_shader, es, output);
+	}
+
 	weston_compositor_use_shader(ec, es->shader);
 	weston_shader_uniforms(es->shader, es, output);