aboutsummaryrefslogtreecommitdiff
path: root/fiv-view.c
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2021-12-26 01:24:09 +0100
committerPřemysl Eric Janouch <p@janouch.name>2021-12-26 02:02:57 +0100
commite5b1a1861cb0e69411b4ebbfaadb235b9bd8a001 (patch)
tree58f592c5598c0659f13a18d1b191db023960c586 /fiv-view.c
parente37acf365a920132da5fdaf014b6b534a4d76015 (diff)
downloadfiv-e5b1a1861cb0e69411b4ebbfaadb235b9bd8a001.tar.gz
fiv-e5b1a1861cb0e69411b4ebbfaadb235b9bd8a001.tar.xz
fiv-e5b1a1861cb0e69411b4ebbfaadb235b9bd8a001.zip
Avoid double CM in saved WebPs
Diffstat (limited to 'fiv-view.c')
-rw-r--r--fiv-view.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/fiv-view.c b/fiv-view.c
index 3f6357f..d03e9ee 100644
--- a/fiv-view.c
+++ b/fiv-view.c
@@ -779,9 +779,18 @@ print(FivView *self)
}
static gboolean
-save_as(FivView *self, gboolean frame)
+save_as(FivView *self, cairo_surface_t *frame)
{
GtkWindow *window = get_toplevel(GTK_WIDGET(self));
+ FivIoProfile target = NULL;
+ if (self->enable_cms && (target = self->screen_cms_profile)) {
+ GtkWidget *dialog = gtk_message_dialog_new(window, GTK_DIALOG_MODAL,
+ GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, "%s",
+ "Color management overrides attached color profiles.");
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
+ }
+
GtkWidget *dialog = gtk_file_chooser_dialog_new(
frame ? "Save frame as" : "Save page as",
window, GTK_FILE_CHOOSER_ACTION_SAVE,
@@ -834,7 +843,7 @@ save_as(FivView *self, gboolean frame)
GError *error = NULL;
#ifdef HAVE_LIBWEBP
if (gtk_file_chooser_get_filter(chooser) == webp_filter)
- fiv_io_save(self->page, frame ? self->frame : NULL, path, &error);
+ fiv_io_save(self->page, frame, target, path, &error);
else
#endif // HAVE_LIBWEBP
fiv_io_save_metadata(self->page, path, &error);
@@ -1027,7 +1036,7 @@ fiv_view_key_press_event(GtkWidget *widget, GdkEventKey *event)
case GDK_KEY_s:
return command(self, FIV_VIEW_COMMAND_SAVE_PAGE);
case GDK_KEY_S:
- return save_as(self, TRUE);
+ return save_as(self, self->frame);
}
}
if (state == GDK_MOD1_MASK) {
@@ -1320,7 +1329,7 @@ fiv_view_command(FivView *self, FivViewCommand command)
break; case FIV_VIEW_COMMAND_PRINT:
print(self);
break; case FIV_VIEW_COMMAND_SAVE_PAGE:
- save_as(self, FALSE);
+ save_as(self, NULL);
break; case FIV_VIEW_COMMAND_INFO:
info(self);