From f1a347e745c0570ffaaac9bd270f4d8578d3d1b3 Mon Sep 17 00:00:00 2001 From: jstebbins Date: Thu, 4 Jun 2009 18:45:02 +0000 Subject: [PATCH] LinGui: fix a couple problems with showing the cropped region in the preview git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2484 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- gtk/src/callbacks.c | 16 ++++++++++++++-- gtk/src/ghb.ui | 2 +- gtk/src/hb-backend.c | 9 +++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index 9e449e34f..df76073a4 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -1563,7 +1563,7 @@ display_width_changed_cb(GtkWidget *widget, signal_user_data_t *ud) update_preview = TRUE; } -void +G_MODULE_EXPORT void display_height_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { g_debug("display_height_changed_cb ()"); @@ -1589,7 +1589,7 @@ display_height_changed_cb(GtkWidget *widget, signal_user_data_t *ud) update_preview = TRUE; } -void +G_MODULE_EXPORT void scale_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { g_debug("scale_changed_cb ()"); @@ -1631,6 +1631,18 @@ scale_changed_cb(GtkWidget *widget, signal_user_data_t *ud) gtk_label_set_text (GTK_LABEL(widget), text); } +G_MODULE_EXPORT void +show_crop_changed_cb(GtkWidget *widget, signal_user_data_t *ud) +{ + g_debug("show_crop_changed_cb ()"); + ghb_widget_to_setting(ud->settings, widget); + ghb_check_dependency(ud, widget); + ghb_live_reset(ud); + if (GTK_WIDGET_SENSITIVE(widget)) + ghb_set_scale (ud, 0); + update_preview = TRUE; +} + G_MODULE_EXPORT void generic_entry_changed_cb(GtkEntry *entry, signal_user_data_t *ud) { diff --git a/gtk/src/ghb.ui b/gtk/src/ghb.ui index e182d0a0a..109f0ac68 100644 --- a/gtk/src/ghb.ui +++ b/gtk/src/ghb.ui @@ -5385,7 +5385,7 @@ the required multiple. True Show Cropped area of the preview Show Crop - + False diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index 7746af2cd..4b2e607c2 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -3116,12 +3116,17 @@ set_preview_job_settings(hb_job_t *job, GValue *settings) job->height = ghb_settings_get_int(settings, "scale_height"); if (ghb_settings_get_boolean(settings, "show_crop")) { + gdouble xscale = (gdouble)job->width / + (gdouble)(job->title->width - job->crop[2] - job->crop[3]); + gdouble yscale = (gdouble)job->height / + (gdouble)(job->title->height - job->crop[0] - job->crop[1]); + + job->width += xscale * (job->crop[2] + job->crop[3]); + job->height += yscale * (job->crop[0] + job->crop[1]); job->crop[0] = 0; job->crop[1] = 0; job->crop[2] = 0; job->crop[3] = 0; - job->width = job->title->width; - job->height = job->title->height; job->anamorphic.modulus = 2; } -- 2.40.0