# HG changeset patch # User zas_ # Date 1208684871 0 # Node ID 1cca0b614cbacfb6843403b40f1bfbdc668a0d73 # Parent eff049b3d3082ed2b75897ac35c2ab5d8588c617 Add a way to restore original state in Adjust menu. diff -r eff049b3d308 -r 1cca0b614cba src/image.c --- a/src/image.c Sun Apr 20 09:29:46 2008 +0000 +++ b/src/image.c Sun Apr 20 09:47:51 2008 +0000 @@ -583,6 +583,9 @@ imd->desaturate = !imd->desaturate; break; case ALTER_NONE: + imd->orientation = imd->image_fd->exif_orientation ? imd->image_fd->exif_orientation : 1; + imd->desaturate = FALSE; + break; default: return; break; @@ -1316,10 +1319,11 @@ if (exif && read_exif_for_orientation) { - if (exif_get_integer(exif, "Exif.Image.Orientation", &orientation)) + if (exif_get_integer(exif, "Exif.Image.Orientation", &orientation)) imd->orientation = orientation; else imd->orientation = 1; + imd->image_fd->exif_orientation = imd->orientation; } } diff -r eff049b3d308 -r 1cca0b614cba src/layout_util.c --- a/src/layout_util.c Sun Apr 20 09:29:46 2008 +0000 +++ b/src/layout_util.c Sun Apr 20 09:47:51 2008 +0000 @@ -336,6 +336,13 @@ layout_image_alter(lw, ALTER_DESATURATE); } +static void layout_menu_alter_none_cb(GtkAction *action, gpointer data) +{ + LayoutWindow *lw = data; + + layout_image_alter(lw, ALTER_NONE); +} + static void layout_menu_info_cb(GtkAction *action, gpointer data) { LayoutWindow *lw = data; @@ -1048,12 +1055,15 @@ { "Editor7", NULL, "editor7", NULL, NULL, CB(layout_menu_edit_cb) }, { "Editor8", NULL, "editor8", NULL, NULL, CB(layout_menu_edit_cb) }, { "Editor9", NULL, "editor9", NULL, NULL, CB(layout_menu_edit_cb) }, + { "RotateCW", NULL, N_("_Rotate clockwise"), "bracketright", NULL, CB(layout_menu_alter_90_cb) }, { "RotateCCW", NULL, N_("Rotate _counterclockwise"), "bracketleft", NULL, CB(layout_menu_alter_90cc_cb) }, { "Rotate180", NULL, N_("Rotate 1_80"), "R", NULL, CB(layout_menu_alter_180_cb) }, { "Mirror", NULL, N_("_Mirror"), "M", NULL, CB(layout_menu_alter_mirror_cb) }, { "Flip", NULL, N_("_Flip"), "F", NULL, CB(layout_menu_alter_flip_cb) }, { "Grayscale", NULL, N_("Toggle _grayscale"),"G", NULL, CB(layout_menu_alter_desaturate_cb) }, + { "AlterNone", NULL, N_("_Original state"), "O", NULL, CB(layout_menu_alter_none_cb) }, + { "Properties",GTK_STOCK_PROPERTIES, N_("_Properties"), "P", NULL, CB(layout_menu_info_cb) }, { "SelectAll", NULL, N_("Select _all"), "A", NULL, CB(layout_menu_select_all_cb) }, { "SelectNone", NULL, N_("Select _none"), "A",NULL, CB(layout_menu_unselect_all_cb) }, @@ -1184,6 +1194,7 @@ " " " " " " +" " " " " " " " diff -r eff049b3d308 -r 1cca0b614cba src/menu.c --- a/src/menu.c Sun Apr 20 09:29:46 2008 +0000 +++ b/src/menu.c Sun Apr 20 09:47:51 2008 +0000 @@ -215,6 +215,9 @@ case ALTER_DESATURATE: return _("Toggle _grayscale"); break; + case ALTER_NONE: + return _("_Original state"); + break; default: break; } @@ -251,6 +254,7 @@ submenu_add_alter_item(submenu, func, ALTER_MIRROR, accel_group, 'M', GDK_SHIFT_MASK); submenu_add_alter_item(submenu, func, ALTER_FLIP, accel_group, 'F', GDK_SHIFT_MASK); submenu_add_alter_item(submenu, func, ALTER_DESATURATE, accel_group, 'G', GDK_SHIFT_MASK); + submenu_add_alter_item(submenu, func, ALTER_NONE, accel_group, 'O', GDK_SHIFT_MASK); if (menu) { diff -r eff049b3d308 -r 1cca0b614cba src/typedefs.h --- a/src/typedefs.h Sun Apr 20 09:29:46 2008 +0000 +++ b/src/typedefs.h Sun Apr 20 09:47:51 2008 +0000 @@ -412,6 +412,7 @@ GdkPixbuf *pixbuf; gint ref; gint user_orientation; + gint exif_orientation; }; struct _LayoutWindow