@@ -14,7 +14,7 @@ cairo_t *c;
1414double get_dummy_scale (void ) { return 1 ; }
1515
1616const struct screen_info * noop_screen (void ) {
17- static struct screen_info i ;
17+ static struct screen_info i = { 0 } ;
1818 return & i ;
1919}
2020
@@ -267,15 +267,18 @@ TEST test_layout_render_no_gaps(void)
267267 dim = calculate_dimensions (layouts );
268268 image_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
269269
270- enum corner_pos corners = C_TOP | _C_FIRST ;
270+ enum corner_pos corners = ( settings . corners & C_TOP ) | _C_FIRST ;
271271 for (GSList * iter = layouts ; iter ; iter = iter -> next ) {
272+
272273 struct colored_layout * cl_this = iter -> data ;
273274 struct colored_layout * cl_next = iter -> next ? iter -> next -> data : NULL ;
274275
275- if (!cl_next )
276- corners |= C_BOT | _C_LAST ;
277- dim = layout_render (image_surface , cl_this , cl_next , dim , corners );
276+ if (settings .gap_size )
277+ corners = settings .corners ;
278+ else if (!cl_next )
279+ corners |= (settings .corners & C_BOT ) | _C_LAST ;
278280
281+ dim = layout_render (image_surface , cl_this , cl_next , dim , corners );
279282 corners &= ~(C_TOP | _C_FIRST );
280283 }
281284
@@ -311,11 +314,19 @@ TEST test_layout_render_gaps(void)
311314 dim = calculate_dimensions (layouts );
312315 image_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
313316
317+ enum corner_pos corners = (settings .corners & C_TOP ) | _C_FIRST ;
314318 for (GSList * iter = layouts ; iter ; iter = iter -> next ) {
319+
315320 struct colored_layout * cl_this = iter -> data ;
316321 struct colored_layout * cl_next = iter -> next ? iter -> next -> data : NULL ;
317322
318- dim = layout_render (image_surface , cl_this , cl_next , dim , C_ALL );
323+ if (settings .gap_size )
324+ corners = settings .corners ;
325+ else if (!cl_next )
326+ corners |= (settings .corners & C_BOT ) | _C_LAST ;
327+
328+ dim = layout_render (image_surface , cl_this , cl_next , dim , corners );
329+ corners &= ~(C_TOP | _C_FIRST );
319330 }
320331
321332 expected_y = get_expected_dimension_y_offset (layout_count );
@@ -336,6 +347,10 @@ SUITE(suite_draw)
336347 cairo_surface_t * s = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
337348 c = cairo_create (s );
338349
350+ // XXX: This variable should not be accessed like this
351+ extern PangoContext * pango_ctx ;
352+ pango_ctx = pango_cairo_create_context (c );
353+
339354 SHUFFLE_TESTS (time (NULL ), {
340355 RUN_TEST (test_layout_from_notification );
341356 RUN_TEST (test_layout_from_notification_icon_off );
@@ -345,4 +360,8 @@ SUITE(suite_draw)
345360 RUN_TEST (test_layout_render_no_gaps );
346361 RUN_TEST (test_layout_render_gaps );
347362 });
363+
364+ g_object_unref (pango_ctx );
365+ cairo_destroy (c );
366+ cairo_surface_destroy (s );
348367}
0 commit comments