# HG changeset patch # User John W. Eaton # Date 1424331185 18000 # Node ID b38b677c0fa8d0b3fedb7a36098cc146aa0c2bc0 # Parent c040bed12b2e41d66d2b1cd789e3fd5aba8ded48 pass button number to Qt graphics buttondownfcn callback (bug #41977) * Canvas.cc (button_number): New static function. (Canvas::canvasMousePressEvent): Use it to pass button number to buttondownfcn. diff --git a/libgui/graphics/Canvas.cc b/libgui/graphics/Canvas.cc --- a/libgui/graphics/Canvas.cc +++ b/libgui/graphics/Canvas.cc @@ -408,6 +408,29 @@ } } +static double +button_number (QMouseEvent *event) +{ + double retval = 0; + + switch (event->button ()) + { + case Qt::LeftButton: + retval = 1; + break; + + case Qt::MidButton: + retval = 2; + break; + + case Qt::RightButton: + retval = 3; + break; + } + + return retval; +} + void Canvas::canvasMousePressEvent (QMouseEvent* event) { gh_manager::auto_lock lock; @@ -500,11 +523,15 @@ case NoMode: gh_manager::post_set (figObj.get_handle (), "selectiontype", Utils::figureSelectionType (event), false); + updateCurrentPoint (figObj, obj, event); + gh_manager::post_callback (figObj.get_handle (), "windowbuttondownfcn"); + gh_manager::post_callback (currentObj.get_handle (), - "buttondownfcn"); + "buttondownfcn", button_number (event)); + if (event->button () == Qt::RightButton) ContextMenu::executeAt (currentObj.get_properties (), event->globalPos ());