bool Render::on_button_release_event(GdkEventButton* event) { if (event->button == 1) { if (event->state & GDK_SHIFT_MASK) { // move object m_view->get_model()->CalcBoundingBoxAndCenter(); queue_draw(); } else if (m_downPoint.x == event->x && m_downPoint.y == event->y){ // click only guint index = find_object_at(event->x, event->y); // click on no object - clear the selection if (!index) m_selection->unselect_all(); } } else return Gtk::DrawingArea::on_button_release_event (event); return true; }
bool Render::on_button_press_event(GdkEventButton* event) { m_arcBall->click (event->x, event->y, &m_transform); // else if (event->button == 3 || event->button == 2) m_downPoint = Vector2f (event->x, event->y); // else // return Gtk::DrawingArea::on_button_press_event (event); if (event->button == 1) { guint index = find_object_at(event->x, event->y); if (index) { Gtk::TreeModel::iterator iter = get_model()->objtree.find_stl_by_index(index); if (iter) { m_selection->select(iter); } } } return true; }