diff --git a/src/AudioControls.cpp b/src/AudioControls.cpp index eccffa918..43c2cb1a0 100644 --- a/src/AudioControls.cpp +++ b/src/AudioControls.cpp @@ -600,10 +600,13 @@ AudioControls::droppedTracks( QList< query_ptr > tracks ) void AudioControls::onSocialButtonClicked() { - SocialWidget* sw = new SocialWidget( m_parent ); - sw->setPosition( sw->mapFromGlobal( QCursor::pos() ) ); - sw->setQuery( m_currentTrack->toQuery() ); - sw->show(); + if ( !m_socialWidget.isNull() ) + return; + + m_socialWidget = new SocialWidget( m_parent ); + m_socialWidget.data()->setPosition( m_socialWidget.data()->mapFromGlobal( QCursor::pos() ) ); + m_socialWidget.data()->setQuery( m_currentTrack->toQuery() ); + m_socialWidget.data()->show(); } diff --git a/src/AudioControls.h b/src/AudioControls.h index d454bf2fe..aad7af1b9 100644 --- a/src/AudioControls.h +++ b/src/AudioControls.h @@ -31,6 +31,7 @@ class QDropEvent; class QDragEnterEvent; class QDragMoveEvent; +class SocialWidget; namespace Ui { @@ -91,6 +92,8 @@ private: void setSocialActions(); Ui::AudioControls* ui; + + QWeakPointer m_socialWidget; Tomahawk::result_ptr m_currentTrack; Tomahawk::PlaylistModes::RepeatMode m_repeatMode;