math_view->interface->SetSelectionLast(float2sp(event->x * SCALED_POINTS_PER_PX) + x0, float2sp(event->y * SCALED_POINTS_PER_PX) + y0);
math_view->interface->SetSelectionLast(elem);
gtk_math_view_motion_notify_event(GtkWidget* widget,				  GdkEventMotion* event,				  GtkMathView* math_view){  g_return_val_if_fail(event != NULL, FALSE);  g_return_val_if_fail(math_view != NULL, FALSE);  g_return_val_if_fail(math_view->interface != NULL, FALSE);  g_return_val_if_fail(math_view->drawing_area != NULL, FALSE);  scaled x0 = math_view->drawing_area->GetTopX();  scaled y0 = math_view->drawing_area->GetTopY();  if (event->x < 0) {    math_view->hadjustment->value -= math_view->hadjustment->step_increment;    gtk_adjustment_value_changed(math_view->hadjustment);  } else if (event->x > widget->allocation.width) {    math_view->hadjustment->value += math_view->hadjustment->step_increment;    gtk_adjustment_value_changed(math_view->hadjustment);  }  if (event->y < 0) {    math_view->vadjustment->value -= math_view->vadjustment->step_increment;    gtk_adjustment_value_changed(math_view->vadjustment);  } else if (event->y > widget->allocation.height) {    math_view->vadjustment->value += math_view->vadjustment->step_increment;    gtk_adjustment_value_changed(math_view->vadjustment);  }  math_view->select = math_view->button_press;  if (math_view->select == TRUE) {    MathMLElement* oldRoot = math_view->interface->GetSelectionRoot();    math_view->interface->SetSelectionLast(float2sp(event->x * SCALED_POINTS_PER_PX) + x0,					   float2sp(event->y * SCALED_POINTS_PER_PX) + y0);    MathMLElement* selected = math_view->interface->GetSelectionRoot();    if (selected != NULL && selected != oldRoot) {      mDOMNodeRef node = (selected != NULL) ? selected->GetDOMNode() : NULL;      gtk_signal_emit(GTK_OBJECT(math_view), selection_changed_signal, node);    }  } else    set_current_cursor(math_view, (gint) event->x, (gint) event->y);  return FALSE;}