@@ -166,14 +166,16 @@ void lmFormChat::receiveMessage(MessageType type, QString* lpszUserId, MessageXm
166166 QString data;
167167
168168 switch (type) {
169- case MT_Message:
169+ case MT_Message:{
170170 appendMessageLog (type, lpszUserId, &senderName, pMessage);
171+ bool isNudge = (pMessage->data (XN_NUDGE) == LM_TRUE);
171172 if (isHidden () || !isActiveWindow ()) {
172- pSoundPlayer->play (SE_NewMessage);
173+ if (!isNudge) pSoundPlayer->play (SE_NewMessage);
173174 title = tr (" %1 says..." );
174175 setWindowTitle (title.arg (senderName));
175176 }
176- break ;
177+ if (isNudge){ QTimer::singleShot (50 , this , [this ]() { nudge (); });} // Giving some time for the window to appear. otherwise it might spawn at 0,0
178+ break ;}
177179 case MT_Broadcast:
178180 appendMessageLog (type, lpszUserId, &senderName, pMessage);
179181 if (isHidden () || !isActiveWindow ()) {
@@ -569,6 +571,7 @@ void lmFormChat::nudge(bool send) {
569571 xmlMessage.addHeader (XN_TIME, QString::number (QDateTime::currentDateTime ().toMSecsSinceEpoch ()));
570572 xmlMessage.addData (XN_FONT, font.toString ());
571573 xmlMessage.addData (XN_COLOR, messageColor.name ());
574+ xmlMessage.addData (XN_NUDGE, LM_TRUE); // Sending Nudge Command within xml
572575 if (groupMode) {
573576 xmlMessage.addData (XN_THREAD, threadId);
574577 xmlMessage.addData (XN_GROUPMESSAGE, szMessage);
@@ -582,9 +585,6 @@ void lmFormChat::nudge(bool send) {
582585 QString userId = index.value ();
583586 emit messageSent (type, &userId, &xmlMessage);
584587 index++;
585-
586- // Nudge Command NEED2TEST Nudge
587-
588588 }
589589 }
590590}
0 commit comments