@@ -44,6 +44,8 @@ void bar_manager_init(struct bar_manager* bar_manager) {
44
44
45
45
bar_manager -> sticky = true;
46
46
47
+ bar_manager -> show_in_fullscreen = false;
48
+
47
49
image_init (& bar_manager -> current_artwork );
48
50
background_init (& bar_manager -> background );
49
51
bar_manager -> background .bounds .size .height = 25 ;
@@ -59,7 +61,7 @@ void bar_manager_init(struct bar_manager* bar_manager) {
59
61
custom_events_init (& bar_manager -> custom_events );
60
62
61
63
animator_init (& bar_manager -> animator );
62
-
64
+
63
65
int shell_refresh_frequency = 1 ;
64
66
65
67
bar_manager -> clock = CFRunLoopTimerCreate (NULL ,
@@ -259,6 +261,12 @@ bool bar_manager_set_font_smoothing(struct bar_manager* bar_manager, bool smooth
259
261
return true;
260
262
}
261
263
264
+ bool bar_manager_set_show_in_fullscreen (struct bar_manager * bar_manager , bool show_in_fullscreen ) {
265
+ if (bar_manager -> show_in_fullscreen == show_in_fullscreen ) return false;
266
+ bar_manager -> show_in_fullscreen = show_in_fullscreen ;
267
+ return true;
268
+ }
269
+
262
270
bool bar_manager_set_hidden (struct bar_manager * bar_manager , uint32_t adid , bool hidden ) {
263
271
bar_manager -> any_bar_hidden = false;
264
272
if (adid > 0 ) {
@@ -342,7 +350,7 @@ bool bar_manager_bar_needs_redraw(struct bar_manager* bar_manager, struct bar* b
342
350
for (int i = 0 ; i < bar_manager -> bar_item_count ; i ++ ) {
343
351
struct bar_item * bar_item = bar_manager -> bar_items [i ];
344
352
bool draws_item = bar_draws_item (bar , bar_item );
345
-
353
+
346
354
bool regular_update = bar_item -> needs_update
347
355
&& draws_item ;
348
356
@@ -403,15 +411,15 @@ bool bar_manager_bar_needs_redraw(struct bar_manager* bar_manager, struct bar* b
403
411
}
404
412
405
413
void bar_manager_clear_needs_update (struct bar_manager * bar_manager ) {
406
- for (int i = 0 ; i < bar_manager -> bar_item_count ; i ++ )
414
+ for (int i = 0 ; i < bar_manager -> bar_item_count ; i ++ )
407
415
bar_manager -> bar_items [i ]-> needs_update = false;
408
416
409
417
bar_manager -> needs_ordering = false;
410
418
bar_manager -> bar_needs_update = false;
411
419
}
412
420
413
421
void bar_manager_reset_bar_association (struct bar_manager * bar_manager ) {
414
- for (int i = 0 ; i < bar_manager -> bar_item_count ; i ++ )
422
+ for (int i = 0 ; i < bar_manager -> bar_item_count ; i ++ )
415
423
bar_item_reset_associated_bar (bar_manager -> bar_items [i ]);
416
424
}
417
425
@@ -428,7 +436,7 @@ void bar_manager_refresh(struct bar_manager* bar_manager, bool forced, bool thre
428
436
429
437
for (int i = 0 ; i < bar_manager -> bar_count ; ++ i ) {
430
438
if (forced
431
- || bar_manager_bar_needs_redraw (bar_manager , bar_manager -> bars [i ])) {
439
+ || bar_manager_bar_needs_redraw (bar_manager , bar_manager -> bars [i ])) {
432
440
bar_calculate_bounds (bar_manager -> bars [i ]);
433
441
bar_draw (bar_manager -> bars [i ], false, threaded );
434
442
if (bar_manager -> needs_ordering ) {
@@ -513,7 +521,7 @@ void bar_manager_update_space_components(struct bar_manager* bar_manager, bool f
513
521
else {
514
522
bar_item -> updates = false;
515
523
}
516
- }
524
+ }
517
525
}
518
526
}
519
527
}
@@ -586,7 +594,7 @@ void bar_manager_begin(struct bar_manager* bar_manager) {
586
594
memset (bar_manager -> bars , 0 , sizeof (struct bar * ) * bar_manager -> bar_count );
587
595
bar_manager -> bars [0 ] = bar_create (did );
588
596
bar_manager -> bars [0 ]-> adid = display_arrangement (did );
589
- }
597
+ }
590
598
else {
591
599
uint32_t display_count = display_active_display_count ();
592
600
uint32_t bar_count = 0 ;
@@ -964,7 +972,7 @@ void bar_manager_handle_space_change(struct bar_manager* bar_manager, bool force
964
972
bar_manager -> bars [i ]-> sid = mission_control_index (dsid );
965
973
966
974
bool was_shown = bar_manager -> bars [i ]-> shown ;
967
- bar_manager -> bars [i ]-> shown = SLSSpaceGetType (g_connection , dsid ) != 4 ;
975
+ bar_manager -> bars [i ]-> shown = SLSSpaceGetType (g_connection , dsid ) != 4 || bar_manager -> show_in_fullscreen ;
968
976
969
977
bar_manager -> needs_ordering |= !was_shown && bar_manager -> bars [i ]-> shown ;
970
978
force_refresh |= !was_shown && bar_manager -> bars [i ]-> shown ;
@@ -1106,6 +1114,7 @@ void bar_manager_serialize(struct bar_manager* bar_manager, FILE* rsp) {
1106
1114
"%s\"hidden\": \"%s\",\n"
1107
1115
"%s\"shadow\": \"%s\",\n"
1108
1116
"%s\"font_smoothing\": \"%s\",\n"
1117
+ "%s\"show_in_fullscreen\": \"%s\",\n"
1109
1118
"%s\"blur_radius\": %u,\n"
1110
1119
"%s\"margin\": %d,\n" ,
1111
1120
indent , bar_manager -> position == POSITION_BOTTOM
@@ -1115,6 +1124,7 @@ void bar_manager_serialize(struct bar_manager* bar_manager, FILE* rsp) {
1115
1124
indent , format_bool (bar_manager -> any_bar_hidden ),
1116
1125
indent , format_bool (bar_manager -> shadow ),
1117
1126
indent , format_bool (bar_manager -> font_smoothing ),
1127
+ indent , format_bool (bar_manager -> show_in_fullscreen ),
1118
1128
indent , bar_manager -> blur_radius ,
1119
1129
indent , bar_manager -> margin );
1120
1130
0 commit comments