After more investigation it turns out that the code that actually emits the focus out event to the spinbutton was introduced with revision 8855 in file src/widgets/toolbox.cpp
prev version: static void connector_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *name, gchar const * /*old_value*/, gchar const * /*new_value*/, bool /*is_interactive*/, gpointer data) { GtkWidget *tbl = GTK_WIDGET(data);
if (g_object_get_data(G_OBJECT(tbl), "freeze")) { return; } if (strcmp(name, "inkscape:connector-spacing") != 0) { return; }
GtkAdjustment *adj = (GtkAdjustment*) gtk_object_get_data(GTK_OBJECT(tbl), "spacing"); gdouble spacing = defaultConnSpacing; sp_repr_get_double(repr, "inkscape:connector-spacing", &spacing);
gtk_adjustment_set_value(adj, spacing); gtk_adjustment_value_changed(adj);
spinbutton_defocus(GTK_OBJECT(tbl)); }
new version:
static void connector_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *name, gchar const * /*old_value*/, gchar const * /*new_value*/, bool /*is_interactive*/, gpointer data) { GtkWidget *tbl = GTK_WIDGET(data);
if (g_object_get_data(G_OBJECT(tbl), "freeze")) { return; } if (strcmp(name, "inkscape:connector-spacing") == 0) { GtkAdjustment *adj = (GtkAdjustment*) gtk_object_get_data(GTK_OBJECT(tbl), "spacing"); gdouble spacing = defaultConnSpacing; sp_repr_get_double(repr, "inkscape:connector-spacing", &spacing);
gtk_adjustment_set_value(adj, spacing); gtk_adjustment_value_changed(adj); }
but I cannot figure out why this change was made. If there is no reason for this maybe we could revert it?
After more investigation it turns out that the code that actually emits the focus out event to the spinbutton was introduced with revision 8855 in file src/widgets/ toolbox. cpp
prev version: tb_event_ attr_changed( Inkscape: :XML::Node *repr,
gchar const *name, gchar const * /*old_value*/, gchar const * /*new_value*/,
bool /*is_interactive*/, gpointer data)
static void connector_
{
GtkWidget *tbl = GTK_WIDGET(data);
if (g_object_ get_data( G_OBJECT( tbl), "freeze")) { connector- spacing" ) != 0) {
return;
}
if (strcmp(name, "inkscape:
return;
}
GtkAdjustment *adj = (GtkAdjustment*)
gtk_ object_ get_data( GTK_OBJECT( tbl), "spacing"); repr_get_ double( repr, "inkscape: connector- spacing" , &spacing);
gdouble spacing = defaultConnSpacing;
sp_
gtk_ adjustment_ set_value( adj, spacing); adjustment_ value_changed( adj);
gtk_
spinbutton_ defocus( GTK_OBJECT( tbl));
}
new version:
static void connector_ tb_event_ attr_changed( Inkscape: :XML::Node *repr,
gchar const *name, gchar const * /*old_value*/, gchar const * /*new_value*/,
bool /*is_interactive*/, gpointer data)
{
GtkWidget *tbl = GTK_WIDGET(data);
if (g_object_ get_data( G_OBJECT( tbl), "freeze")) { connector- spacing" ) == 0)
GtkAdjustment *adj = (GtkAdjustment*)
gtk_object_ get_data( GTK_OBJECT( tbl), "spacing");
sp_repr_ get_double( repr, "inkscape: connector- spacing" , &spacing);
return;
}
if (strcmp(name, "inkscape:
{
gdouble spacing = defaultConnSpacing;
}
spinbutton_ defocus( GTK_OBJECT( tbl));
}
but I cannot figure out why this change was made. If there is no reason for this maybe we could revert it?