<property name="value">1</property>
</object>
<object class="GtkAdjustment" id="adjustment25">
- <property name="upper">2000</property>
+ <property name="upper">4096</property>
<property name="lower">0</property>
<property name="page_increment">16</property>
<property name="step_increment">1</property>
<property name="value">0</property>
</object>
<object class="GtkAdjustment" id="adjustment26">
- <property name="upper">1200</property>
+ <property name="upper">4096</property>
<property name="lower">0</property>
<property name="page_increment">16</property>
<property name="step_increment">1</property>
<property name="value">0.0</property>
</object>
<object class="GtkAdjustment" id="adjustment29">
- <property name="upper">2000</property>
+ <property name="upper">65535</property>
<property name="lower">1</property>
<property name="page_increment">16</property>
<property name="step_increment">1</property>
<property name="value">0</property>
</object>
<object class="GtkAdjustment" id="adjustment30">
- <property name="upper">2000</property>
+ <property name="upper">65535</property>
<property name="lower">1</property>
<property name="page_increment">16</property>
<property name="step_increment">1</property>
gtk_widget_set_sensitive(widget, pic_par != 1);
}
+void
+ghb_limit_rational( gint *num, gint *den, gint limit )
+{
+ if (*num < limit && *den < limit)
+ return;
+
+ if (*num > *den)
+ {
+ gdouble factor = (double)limit / *num;
+ *num = limit;
+ *den = factor * *den;
+ }
+ else
+ {
+ gdouble factor = (double)limit / *den;
+ *den = limit;
+ *num = factor * *num;
+ }
+}
+
void
ghb_set_scale(signal_user_data_t *ud, gint mode)
{
gint disp_width, dar_width, dar_height;
gchar *str;
- disp_width = (gdouble)(width * par_width / par_height) + 0.5;
+ disp_width = ((gdouble)par_width / par_height) * width + 0.5;
hb_reduce(&dar_width, &dar_height, disp_width, height);
-
+ ghb_limit_rational(&par_width, &par_height, 65535);
gint iaspect = dar_width * 9 / dar_height;
if (dar_width > 2 * dar_height)
{