Set outline color per spiral segment

This commit is contained in:
Paul Dicker
2025-04-09 20:16:12 +02:00
committed by Stéphane Lesimple
parent 73218aebd2
commit ed8d9cfd66
7 changed files with 28 additions and 25 deletions

View File

@@ -182,7 +182,7 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
}
/*
* Clip the spiral. Simply remove the clipping elements to avoid flicker.
* Clip the spiral.
*/
static gboolean clip_idle_func(gpointer data)
@@ -190,22 +190,19 @@ static gboolean clip_idle_func(gpointer data)
int i;
if(spiral->segmentClipping < spiral->segmentCount)
{ GdkColor *outline = spiral->outline;
int clipping = spiral->segmentClipping;
{ int clipping = spiral->segmentClipping;
spiral->outline = Closure->background;
spiral->segmentClipping = spiral->segmentCount;
for(i=clipping; i < spiral->segmentCount; i++)
GuiDrawSpiralSegment(spiral, Closure->background, i);
GuiDrawSpiralSegment(spiral, Closure->background, Closure->background, i);
spiral->outline = outline;
spiral->segmentClipping = clipping;
/* Now redraw the last turn */
for(i=ADAPTIVE_READ_SPIRAL_SIZE-300; i<=clipping; i++)
GuiDrawSpiralSegment(spiral, Closure->background, i);
GuiDrawSpiralSegment(spiral, Closure->background, 0, i);
}
return FALSE;
@@ -233,6 +230,7 @@ static gboolean segment_idle_func(gpointer data)
segment-=100;
GuiDrawSpiralSegment(Closure->readAdaptiveSpiral,
Closure->readAdaptiveSpiral->segmentColor[segment],
0,
segment);
return FALSE;
@@ -255,8 +253,8 @@ static gboolean remove_fill_idle_func(gpointer data)
int i;
for(i=0; i<spiral->segmentCount; i++)
if(spiral->segmentColor[i] == Closure->whiteSector)
GuiDrawSpiralSegment(spiral, Closure->background, i);
if(spiral->segmentColor[i] == Closure->whiteSector)
GuiDrawSpiralSegment(spiral, Closure->background, 0, i);
return FALSE;
}