@@ -14,7 +14,7 @@ cairo_t *c;
14
14
double get_dummy_scale (void ) { return 1 ; }
15
15
16
16
const struct screen_info * noop_screen (void ) {
17
- static struct screen_info i ;
17
+ static struct screen_info i = { 0 } ;
18
18
return & i ;
19
19
}
20
20
@@ -267,15 +267,18 @@ TEST test_layout_render_no_gaps(void)
267
267
dim = calculate_dimensions (layouts );
268
268
image_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
269
269
270
- enum corner_pos corners = C_TOP | _C_FIRST ;
270
+ enum corner_pos corners = ( settings . corners & C_TOP ) | _C_FIRST ;
271
271
for (GSList * iter = layouts ; iter ; iter = iter -> next ) {
272
+
272
273
struct colored_layout * cl_this = iter -> data ;
273
274
struct colored_layout * cl_next = iter -> next ? iter -> next -> data : NULL ;
274
275
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 ;
278
280
281
+ dim = layout_render (image_surface , cl_this , cl_next , dim , corners );
279
282
corners &= ~(C_TOP | _C_FIRST );
280
283
}
281
284
@@ -311,11 +314,19 @@ TEST test_layout_render_gaps(void)
311
314
dim = calculate_dimensions (layouts );
312
315
image_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
313
316
317
+ enum corner_pos corners = (settings .corners & C_TOP ) | _C_FIRST ;
314
318
for (GSList * iter = layouts ; iter ; iter = iter -> next ) {
319
+
315
320
struct colored_layout * cl_this = iter -> data ;
316
321
struct colored_layout * cl_next = iter -> next ? iter -> next -> data : NULL ;
317
322
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 );
319
330
}
320
331
321
332
expected_y = get_expected_dimension_y_offset (layout_count );
@@ -336,6 +347,10 @@ SUITE(suite_draw)
336
347
cairo_surface_t * s = cairo_image_surface_create (CAIRO_FORMAT_ARGB32 , 1 , 1 );
337
348
c = cairo_create (s );
338
349
350
+ // XXX: This variable should not be accessed like this
351
+ extern PangoContext * pango_ctx ;
352
+ pango_ctx = pango_cairo_create_context (c );
353
+
339
354
SHUFFLE_TESTS (time (NULL ), {
340
355
RUN_TEST (test_layout_from_notification );
341
356
RUN_TEST (test_layout_from_notification_icon_off );
@@ -345,4 +360,8 @@ SUITE(suite_draw)
345
360
RUN_TEST (test_layout_render_no_gaps );
346
361
RUN_TEST (test_layout_render_gaps );
347
362
});
363
+
364
+ g_object_unref (pango_ctx );
365
+ cairo_destroy (c );
366
+ cairo_surface_destroy (s );
348
367
}
0 commit comments