diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2013-11-22 18:45:06 +0100 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2013-11-22 18:45:06 +0100 |
commit | f0b2b230e1cd4d35f2a95c3bad94e31ecdd70de1 (patch) | |
tree | 2b5492ec5c976e75ec12f83e1e3d71989d3f0457 /src/urlbar/completionwidget.cpp | |
parent | improvements on urlbar (diff) | |
download | rekonq-f0b2b230e1cd4d35f2a95c3bad94e31ecdd70de1.tar.xz |
Fix some eventual crashes while clicking engine favicons
Diffstat (limited to 'src/urlbar/completionwidget.cpp')
-rw-r--r-- | src/urlbar/completionwidget.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/urlbar/completionwidget.cpp b/src/urlbar/completionwidget.cpp index fc29f089..51ebd9e2 100644 --- a/src/urlbar/completionwidget.cpp +++ b/src/urlbar/completionwidget.cpp @@ -190,7 +190,7 @@ void CompletionWidget::clear() QLayoutItem *child; while ((child = layout()->takeAt(0)) != 0) { - delete child->widget(); + child->widget()->deleteLater(); delete child; } _currentIndex = 0; @@ -307,14 +307,16 @@ bool CompletionWidget::eventFilter(QObject *obj, QEvent *ev) } } - hide(); emit chosenUrl(urlToLoad, type); kev->accept(); + hide(); if (type != Rekonq::CurrentTab) w->clear(); + return true; } + case Qt::Key_Escape: hide(); @@ -348,14 +350,15 @@ void CompletionWidget::setVisible(bool visible) void CompletionWidget::itemChosen(ListItem *item, Qt::MouseButton button, Qt::KeyboardModifiers modifier) { - if (button == Qt::MidButton - || modifier == Qt::ControlModifier) + KUrl u = item->url(); + + if (button == Qt::MidButton || modifier == Qt::ControlModifier) { - emit chosenUrl(item->url(), Rekonq::NewFocusedTab); + emit chosenUrl(u, Rekonq::NewFocusedTab); } else { - emit chosenUrl(item->url(), Rekonq::CurrentTab); + emit chosenUrl(u, Rekonq::CurrentTab); } // do it AFTER launching chosenUrl to get sure item exists |