From d9f9094a5683eb6afe52cbe740047a6e735fab19 Mon Sep 17 00:00:00 2001 From: Paul Dicker Date: Wed, 2 Apr 2025 13:51:38 +0200 Subject: [PATCH] Only draw inside expose callback in raw editor --- src/raw-editor.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/raw-editor.c b/src/raw-editor.c index f1bc75c..771a9e9 100644 --- a/src/raw-editor.c +++ b/src/raw-editor.c @@ -313,7 +313,7 @@ static void file_select_cb(GtkWidget *widget, gpointer data) memcpy(rec->undoRing[0], rec->rb->rawBuf[0], rec->rb->sampleSize); calculate_failures(rec); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); GuiSetLabelText(rec->rightLabel, _("%s loaded, LBA %" PRId64 ", %d samples."), rec->filepath, rec->rb->lba, rec->rb->samplesRead); } @@ -421,7 +421,7 @@ static void buffer_io_cb(GtkWidget *widget, gpointer data) calculate_failures(rec); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); 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); else SetQVector(rb->recovered, vector, v); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("%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]; SetPVector(rb->recovered, rb->pList[v][i], v); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); GuiSetLabelText(rec->rightLabel, _("Exchanged P vector %d with version %d (of %d)."), 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]; SetQVector(rb->recovered, rb->qList[v][i], v); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); GuiSetLabelText(rec->rightLabel, _("Exchanged Q vector %d with version %d (of %d)."), 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); rec->tags[bytepos] ^= 1; - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); } break; @@ -812,7 +812,7 @@ static void action_cb(GtkWidget *widget, gpointer data) rec->sectorChanged = FALSE; memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."), rec->currentSample, rec->rb->samplesRead); @@ -825,7 +825,7 @@ static void action_cb(GtkWidget *widget, gpointer data) rec->sectorChanged = FALSE; memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("Showing sample %d (of %d)."), rec->currentSample, rec->rb->samplesRead); @@ -833,7 +833,7 @@ static void action_cb(GtkWidget *widget, gpointer data) case ACTION_UNTAG: memset(rec->tags, 0, 2352); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); break; @@ -848,7 +848,7 @@ static void action_cb(GtkWidget *widget, gpointer data) if(byte != rec->rb->rawBuf[j][i]) rec->tags[i] = 1; } - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); break; } @@ -856,13 +856,13 @@ static void action_cb(GtkWidget *widget, gpointer data) case ACTION_UNDO: undo(rec); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); break; case ACTION_REDO: redo(rec); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); break; case ACTION_SORT_BY_P: @@ -871,7 +871,7 @@ static void action_cb(GtkWidget *widget, gpointer data) rec->currentSample = 0; memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("Sector with lowest P failures selected.")); break; @@ -881,7 +881,7 @@ static void action_cb(GtkWidget *widget, gpointer data) rec->currentSample = 0; memcpy(rec->rb->recovered, rec->rbInfo[rec->currentSample].rawSector, rec->rb->sampleSize); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("Sector with lowest Q failures selected.")); break; @@ -892,7 +892,7 @@ static void action_cb(GtkWidget *widget, gpointer data) rec->smartLECHandle = PrepareIterativeSmartLEC(rec->rb); SmartLECIteration(rec->smartLECHandle, message); evaluate_vectors(rec); - render_sector(rec); + gtk_widget_queue_draw(GTK_WIDGET(rec->window)); undo_remember(rec); GuiSetLabelText(rec->rightLabel, _("Smart L-EC: %s"), message); break;