From 1b5648b51a60ebc9b5ddd2c990ad45bab1a3e523 Mon Sep 17 00:00:00 2001 From: Aurindam Jana <aurindam.jana@nokia.com> Date: Tue, 20 Mar 2012 09:28:47 +0100 Subject: [PATCH] CrumblePath: Fix Crash QWidget::mousePressEvent() closes the widget if the position is not within the rect. A subsequent call to update() amounts to accessing potentially corrupt memory. Hence call update() before calling QWidget::mousePressEvent(). Change-Id: I850471d3a1dfdb0a4f0541a69fd2f239dbf8b5fa Reviewed-by: Kai Koehne <kai.koehne@nokia.com> --- src/libs/utils/crumblepath.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/crumblepath.cpp b/src/libs/utils/crumblepath.cpp index a69258802a..80c273c97b 100644 --- a/src/libs/utils/crumblepath.cpp +++ b/src/libs/utils/crumblepath.cpp @@ -173,34 +173,34 @@ void CrumblePathButton::tintImages() void CrumblePathButton::leaveEvent(QEvent *e) { - QPushButton::leaveEvent(e); m_isHovering = false; update(); + QPushButton::leaveEvent(e); } void CrumblePathButton::mouseMoveEvent(QMouseEvent *e) { if (!isEnabled()) return; - QPushButton::mouseMoveEvent(e); m_isHovering = true; update(); + QPushButton::mouseMoveEvent(e); } void CrumblePathButton::mousePressEvent(QMouseEvent *e) { if (!isEnabled()) return; - QPushButton::mousePressEvent(e); m_isPressed = true; update(); + QPushButton::mousePressEvent(e); } void CrumblePathButton::mouseReleaseEvent(QMouseEvent *e) { - QPushButton::mouseReleaseEvent(e); m_isPressed = false; update(); + QPushButton::mouseReleaseEvent(e); } void CrumblePathButton::changeEvent(QEvent *e) -- GitLab