Update of /cvsroot/ufraw/ufraw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv9300
Modified Files: ufraw_preview.c Log Message: Fix rotation. Index: ufraw_preview.c =================================================================== RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v retrieving revision 1.328 retrieving revision 1.329 diff -u -d -r1.328 -r1.329 --- ufraw_preview.c 31 Jan 2010 08:23:27 -0000 1.328 +++ ufraw_preview.c 31 Jan 2010 14:15:11 -0000 1.329 @@ -663,13 +663,6 @@ #endif } -static void preview_draw_all(preview_data *data) -{ - int width = gdk_pixbuf_get_width(data->PreviewPixbuf); - int height = gdk_pixbuf_get_height(data->PreviewPixbuf); - preview_draw_area(data, 0, 0, width, height); -} - static gboolean preview_draw_crop(preview_data *data) { int CropX1, CropX2, CropY1, CropY2; @@ -2137,73 +2130,21 @@ static void flip_image(GtkWidget *widget, int flip) { - int temp; preview_data *data = get_preview_data(widget); - if (data->FreezeDialog) return; - ufraw_flip_image(data->UF, flip); - - if (flip & 1) { - temp = CFG->CropX1; - CFG->CropX1 = data->UF->rotatedWidth - CFG->CropX2; - CFG->CropX2 = data->UF->rotatedWidth - temp; - if ( data->SpotX1>=0 ) { - temp = data->SpotX1; - data->SpotX1 = data->UF->rotatedWidth - data->SpotX2; - data->SpotX2 = data->UF->rotatedWidth - temp; - } - } - if (flip & 2) { - temp = CFG->CropY1; - CFG->CropY1 = data->UF->rotatedHeight - CFG->CropY2; - CFG->CropY2 = data->UF->rotatedHeight - temp; - if ( data->SpotX1>=0 ) { - temp = data->SpotY1; - data->SpotY1 = data->UF->rotatedHeight - data->SpotY2; - data->SpotY2 = data->UF->rotatedHeight - temp; - } - } - if (flip & 4) { - temp = CFG->CropX1; - CFG->CropX1 = CFG->CropY1; - CFG->CropY1 = temp; - temp = CFG->CropX2; - CFG->CropX2 = CFG->CropY2; - CFG->CropY2 = temp; - if ( data->SpotX1>=0 ) { - temp = data->SpotX1; - data->SpotX1 = data->SpotY1; - data->SpotY1 = temp; - temp = data->SpotX2; - data->SpotX2 = data->SpotY2; - data->SpotY2 = temp; - } - } - // image dimensions cannot really change here, - // yet width and height might be flipped (independent of flip&4). - ufraw_get_image_dimensions(data->UF); + int oldOrientation = CFG->orientation; + double oldAngle = CFG->rotationAngle; + ufraw_flip_orientation(data->UF, flip); - ++data->FreezeDialog; + data->FreezeDialog++; ufraw_unnormalize_rotation(data->UF); - gtk_adjustment_set_value(data->RotationAdjustment, - CFG->rotationAngle); + gtk_adjustment_set_value(data->RotationAdjustment, CFG->rotationAngle); + data->UnnormalizedOrientation = CFG->orientation; ufraw_normalize_rotation(data->UF); - gtk_widget_set_sensitive(data->ResetRotationAdjustment, - CFG->rotationAngle != 0 || - CFG->orientation != CFG->CameraOrientation); - --data->FreezeDialog; - - render_init(data); - if (is_rendering(data)) { - /* TODO: We are in the middle or a rendering scan, - * so we should restart from the beginning. */ - } else { - /* Full image was already rendered. - * We only need to draw the flipped image. */ - preview_draw_all(data); - } - update_crop_ranges(data, TRUE); - refresh_aspect(data); + data->FreezeDialog--; + CFG->orientation = oldOrientation; + CFG->rotationAngle = oldAngle; + gtk_adjustment_value_changed(data->RotationAdjustment); } /* ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ ufraw-cvs mailing list ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs