@@ -161,9 +161,7 @@ void render(struct swaylock_surface *surface) {
161161 surface -> dirty = false;
162162 surface -> frame = wl_surface_frame (surface -> surface );
163163 wl_callback_add_listener (surface -> frame , & surface_frame_listener , surface );
164- if (commit ) {
165- wl_surface_commit (surface -> surface );
166- }
164+ wl_surface_commit (surface -> surface );
167165
168166 if (need_destroy ) {
169167 destroy_buffer (& buffer );
@@ -177,8 +175,7 @@ void render_background_fade(struct swaylock_surface *surface, uint32_t time) {
177175
178176 fade_update (& surface -> fade , time );
179177
180- render_frame_background (surface , true);
181- render_frame (surface );
178+ render (surface );
182179}
183180
184181static void configure_font_drawing (cairo_t * cairo , struct swaylock_state * state ,
@@ -210,7 +207,7 @@ static bool render_frame(struct swaylock_surface *surface) {
210207 char * text_l1 = NULL ;
211208 char * text_l2 = NULL ;
212209 const char * layout_text = NULL ;
213- double font_size ;
210+ double font_size = 0 ;
214211
215212 bool draw_indicator = state -> args .show_indicator &&
216213 (state -> auth_state != AUTH_STATE_IDLE ||
@@ -222,7 +219,7 @@ static bool render_frame(struct swaylock_surface *surface) {
222219 // This message has highest priority
223220 text = state -> args .text_cleared ;
224221 } else if (state -> auth_state == AUTH_STATE_VALIDATING ) {
225- text = state -> args .text_verifyin ;
222+ text = state -> args .text_verifying ;
226223 } else if (state -> auth_state == AUTH_STATE_INVALID ) {
227224 text = state -> args .text_wrong ;
228225 } else {
@@ -260,10 +257,10 @@ static bool render_frame(struct swaylock_surface *surface) {
260257 }
261258 }
262259
263- if (text_l1 && !text_l2 )
264- text = text_l1 ;
265- if (text_l2 && !text_l1 )
266- text = text_l2 ;
260+ if (text_l1 && !text_l2 )
261+ text = text_l1 ;
262+ if (text_l2 && !text_l1 )
263+ text = text_l2 ;
267264
268265 // Compute the size of the buffer needed
269266 int arc_radius = state -> args .radius * surface -> scale ;
@@ -301,40 +298,41 @@ static bool render_frame(struct swaylock_surface *surface) {
301298
302299 /* Top */
303300
304- cairo_text_extents (cairo , text_l1 , & extents_l1 );
305- cairo_font_extents (cairo , & fe_l1 );
301+ cairo_text_extents (state -> test_cairo , text_l1 , & extents_l1 );
302+ cairo_font_extents (state -> test_cairo , & fe_l1 );
306303 x_l1 = (buffer_width / 2 ) -
307304 (extents_l1 .width / 2 + extents_l1 .x_bearing );
308305 y_l1 = (buffer_diameter / 2 ) +
309306 (fe_l1 .height / 2 - fe_l1 .descent ) - arc_radius / 10.0f ;
310307
311- cairo_move_to (cairo , x_l1 , y_l1 );
312- cairo_show_text (cairo , text_l1 );
313- cairo_close_path (cairo );
314- cairo_new_sub_path (cairo );
308+ cairo_move_to (state -> test_cairo , x_l1 , y_l1 );
309+ cairo_show_text (state -> test_cairo , text_l1 );
310+ cairo_close_path (state -> test_cairo );
311+ cairo_new_sub_path (state -> test_cairo );
315312
316313 /* Bottom */
317314
318- cairo_set_font_size (cairo , arc_radius / 6.0f );
319- cairo_text_extents (cairo , text_l2 , & extents_l2 );
320- cairo_font_extents (cairo , & fe_l2 );
315+ cairo_set_font_size (state -> test_cairo , arc_radius / 6.0f );
316+ cairo_text_extents (state -> test_cairo , text_l2 , & extents_l2 );
317+ cairo_font_extents (state -> test_cairo , & fe_l2 );
321318 x_l2 = (buffer_width / 2 ) -
322319 (extents_l2 .width / 2 + extents_l2 .x_bearing );
323320 y_l2 = (buffer_diameter / 2 ) +
324321 (fe_l2 .height / 2 - fe_l2 .descent ) + arc_radius / 3.5f ;
325322
326- cairo_move_to (cairo , x_l2 , y_l2 );
327- cairo_show_text (cairo , text_l2 );
328- cairo_close_path (cairo );
329- cairo_new_sub_path (cairo );
323+ cairo_move_to (state -> test_cairo , x_l2 , y_l2 );
324+ cairo_show_text (state -> test_cairo , text_l2 );
325+ cairo_close_path (state -> test_cairo );
326+ cairo_new_sub_path (state -> test_cairo );
330327
331- if (new_width < extents_l1 .width )
332- new_width = extents_l1 .width ;
333- if (new_width < extents_l2 .width )
334- new_width = extents_l2 .width ;
328+ double box_padding = 4.0 * surface -> scale ;
329+ if (buffer_width < extents_l1 .width + 2 * box_padding )
330+ buffer_width = extents_l1 .width + 2 * box_padding ;
331+ if (buffer_width < extents_l2 .width + 2 * box_padding )
332+ buffer_width = extents_l2 .width + 2 * box_padding ;
335333
336334
337- cairo_set_font_size (cairo , font_size );
335+ cairo_set_font_size (state -> test_cairo , font_size );
338336 }
339337 // Ensure buffer size is multiple of buffer scale - required by protocol
340338 buffer_height += surface -> scale - (buffer_height % surface -> scale );
0 commit comments