dia r4001 - in trunk: . lib
- From: hans svn gnome org
- To: svn-commits-list gnome org
- Subject: dia r4001 - in trunk: . lib
- Date: Sat, 10 May 2008 18:17:15 +0100 (BST)
Author: hans
Date: Sat May 10 17:17:15 2008
New Revision: 4001
URL: http://svn.gnome.org/viewvc/dia?rev=4001&view=rev
Log:
2008-05-10 Hans Breuer <hans breuer org>
* lib/widget.c(DiaSizeSelector): initialize static variable, avoid
division by zero, don't compare floating points for identiy; together
fixing bug #479591
Modified:
trunk/ChangeLog
trunk/lib/widgets.c
Modified: trunk/lib/widgets.c
==============================================================================
--- trunk/lib/widgets.c (original)
+++ trunk/lib/widgets.c Sat May 10 17:17:15 2008
@@ -98,7 +98,8 @@
{
real height =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(ss->height));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->width), height*ss->ratio);
+ if (fabs(ss->ratio) > 1e-6)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->width), height*ss->ratio);
}
static void
@@ -106,32 +107,34 @@
{
real width =
gtk_spin_button_get_value_as_float(GTK_SPIN_BUTTON(ss->width));
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->height), width/ss->ratio);
+ if (fabs(ss->ratio) > 1e-6)
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(ss->height), width/ss->ratio);
}
static void
dia_size_selector_ratio_callback(GtkAdjustment *limits, gpointer userdata)
{
- static gboolean in_progress;
+ static gboolean in_progress = FALSE;
DiaSizeSelector *ss = DIA_SIZE_SELECTOR(userdata);
ss->last_adjusted = limits;
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ss->aspect_locked))
- || ss->ratio == 0.0)
- return;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ss->aspect_locked))
+ && ss->ratio != 0.0) {
- if (in_progress) return;
- in_progress = TRUE;
+ if (in_progress)
+ return;
+ in_progress = TRUE;
+
+ if (limits == gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(ss->width))) {
+ dia_size_selector_adjust_height(ss);
+ } else {
+ dia_size_selector_adjust_width(ss);
+ }
- if (limits == gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(ss->width))) {
- dia_size_selector_adjust_height(ss);
- } else {
- dia_size_selector_adjust_width(ss);
+ in_progress = FALSE;
}
- in_progress = FALSE;
-
g_signal_emit(ss, dss_signals[DSS_VALUE_CHANGED], 0);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]