Only draw inside expose callback in raw editor

This commit is contained in:
Paul Dicker
2025-04-02 13:51:38 +02:00
committed by Stéphane Lesimple
parent 923fe44e4a
commit d9f9094a56

View File

@@ -313,7 +313,7 @@ static void file_select_cb(GtkWidget *widget, gpointer data)
memcpy(rec->undoRing[0], rec->rb->rawBuf[0], rec->rb->sampleSize); memcpy(rec->undoRing[0], rec->rb->rawBuf[0], rec->rb->sampleSize);
calculate_failures(rec); calculate_failures(rec);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
GuiSetLabelText(rec->rightLabel, _("%s loaded, LBA %" PRId64 ", %d samples."), GuiSetLabelText(rec->rightLabel, _("%s loaded, LBA %" PRId64 ", %d samples."),
rec->filepath, rec->rb->lba, rec->rb->samplesRead); rec->filepath, rec->rb->lba, rec->rb->samplesRead);
} }
@@ -421,7 +421,7 @@ static void buffer_io_cb(GtkWidget *widget, gpointer data)
calculate_failures(rec); calculate_failures(rec);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Buffer loaded from %s."), path); GuiSetLabelText(rec->rightLabel, _("Buffer loaded from %s."), path);
@@ -680,7 +680,7 @@ static gboolean button_cb(GtkWidget *widget, GdkEventButton *event, gpointer dat
{ if(type=='P') SetPVector(rb->recovered, vector, v); { if(type=='P') SetPVector(rb->recovered, vector, v);
else SetQVector(rb->recovered, vector, v); else SetQVector(rb->recovered, vector, v);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, GuiSetLabelText(rec->rightLabel,
_("%c Vector %d corrected (%d erasures)."), type, v, e_scratch); _("%c Vector %d corrected (%d erasures)."), type, v, e_scratch);
@@ -715,7 +715,7 @@ static gboolean button_cb(GtkWidget *widget, GdkEventButton *event, gpointer dat
i = (last+1)%rb->pn[v]; i = (last+1)%rb->pn[v];
SetPVector(rb->recovered, rb->pList[v][i], v); SetPVector(rb->recovered, rb->pList[v][i], v);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
GuiSetLabelText(rec->rightLabel, GuiSetLabelText(rec->rightLabel,
_("Exchanged P vector %d with version %d (of %d)."), _("Exchanged P vector %d with version %d (of %d)."),
v, i+1, rb->pn[v]); v, i+1, rb->pn[v]);
@@ -751,7 +751,7 @@ static gboolean button_cb(GtkWidget *widget, GdkEventButton *event, gpointer dat
i = (last+1)%rb->qn[v]; i = (last+1)%rb->qn[v];
SetQVector(rb->recovered, rb->qList[v][i], v); SetQVector(rb->recovered, rb->qList[v][i], v);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
GuiSetLabelText(rec->rightLabel, GuiSetLabelText(rec->rightLabel,
_("Exchanged Q vector %d with version %d (of %d)."), _("Exchanged Q vector %d with version %d (of %d)."),
v, i+1, rb->qn[v]); v, i+1, rb->qn[v]);
@@ -766,7 +766,7 @@ static gboolean button_cb(GtkWidget *widget, GdkEventButton *event, gpointer dat
{ int bytepos = 12 + mouse_x/rec->charWidth + N_P_VECTORS*(mouse_y/rec->charHeight); { int bytepos = 12 + mouse_x/rec->charWidth + N_P_VECTORS*(mouse_y/rec->charHeight);
rec->tags[bytepos] ^= 1; rec->tags[bytepos] ^= 1;
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
} }
break; break;
@@ -812,7 +812,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
rec->sectorChanged = FALSE; rec->sectorChanged = FALSE;
memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."), GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."),
rec->currentSample, rec->rb->samplesRead); rec->currentSample, rec->rb->samplesRead);
@@ -825,7 +825,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
rec->sectorChanged = FALSE; rec->sectorChanged = FALSE;
memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."), GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."),
rec->currentSample, rec->rb->samplesRead); rec->currentSample, rec->rb->samplesRead);
@@ -833,7 +833,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
case ACTION_UNTAG: case ACTION_UNTAG:
memset(rec->tags, 0, 2352); memset(rec->tags, 0, 2352);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
break; break;
@@ -848,7 +848,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
if(byte != rec->rb->rawBuf[j][i]) if(byte != rec->rb->rawBuf[j][i])
rec->tags[i] = 1; rec->tags[i] = 1;
} }
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
break; break;
} }
@@ -856,13 +856,13 @@ static void action_cb(GtkWidget *widget, gpointer data)
case ACTION_UNDO: case ACTION_UNDO:
undo(rec); undo(rec);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
break; break;
case ACTION_REDO: case ACTION_REDO:
redo(rec); redo(rec);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
break; break;
case ACTION_SORT_BY_P: case ACTION_SORT_BY_P:
@@ -871,7 +871,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
rec->currentSample = 0; rec->currentSample = 0;
memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Sector with lowest P failures selected.")); GuiSetLabelText(rec->rightLabel, _("Sector with lowest P failures selected."));
break; break;
@@ -881,7 +881,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
rec->currentSample = 0; rec->currentSample = 0;
memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Sector with lowest Q failures selected.")); GuiSetLabelText(rec->rightLabel, _("Sector with lowest Q failures selected."));
break; break;
@@ -892,7 +892,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
rec->smartLECHandle = PrepareIterativeSmartLEC(rec->rb); rec->smartLECHandle = PrepareIterativeSmartLEC(rec->rb);
SmartLECIteration(rec->smartLECHandle, message); SmartLECIteration(rec->smartLECHandle, message);
evaluate_vectors(rec); evaluate_vectors(rec);
render_sector(rec); gtk_widget_queue_draw(GTK_WIDGET(rec->window));
undo_remember(rec); undo_remember(rec);
GuiSetLabelText(rec->rightLabel, _("Smart L-EC: %s"), message); GuiSetLabelText(rec->rightLabel, _("Smart L-EC: %s"), message);
break; break;