Fix OOB segfault with markers

This commit is contained in:
jlitewski 2024-04-27 09:06:40 -04:00
commit b20d3f44ad

View file

@ -1268,15 +1268,23 @@ void Plot::wheelEvent(QWheelEvent *event) {
void Plot::mouseMoveEvent(QMouseEvent *event) { void Plot::mouseMoveEvent(QMouseEvent *event) {
int x = event->x(); int x = event->x();
//Only run the marker place code if a mouse button is pressed
if((event->buttons() & Qt::LeftButton) || (event->buttons() & Qt::RightButton)) {
x -= WIDTH_AXES; x -= WIDTH_AXES;
x = (int)(x / g_GraphPixelsPerPoint); x = (int)(x / g_GraphPixelsPerPoint);
x += g_GraphStart; x += g_GraphStart;
if ((event->buttons() & Qt::LeftButton)) { if(x > (int)g_GraphTraceLen) x = 0; // Set to 0 if the number is stupidly big
else if(x < (int)g_GraphStart) x = (int)g_GraphStart; // Bounds checking for the start of the Graph Window
else if(x > (int)g_GraphStop) x = (int)g_GraphStop; // Bounds checking for the end of the Graph Window
if ((event->buttons() & Qt::LeftButton)) { // True for left click, false otherwise
g_MarkerA.pos = x; g_MarkerA.pos = x;
} else if (event->buttons() & Qt::RightButton) { } else {
g_MarkerB.pos = x; g_MarkerB.pos = x;
} }
}
this->update(); this->update();
} }