--- src/groupchatdlg.cpp~	2007-09-18 11:12:54 +0400
+++ src/groupchatdlg.cpp	2007-10-06 18:13:35 +0400
@@ -459,6 +459,38 @@ public:		
 
 		return QObject::eventFilter( obj, ev );
 	}
+
+protected slots:
+	void onUserListMouseClicked(int btn, Q3ListViewItem* i, const QPoint&, int)
+	{
+	    if(!i) return;
+	    switch(btn)
+	    {
+		case 1:
+		{
+		    // paste user nick into chat edit
+		    QString nick = i->text(0);
+		    if( !nick.isEmpty() )
+		    {
+			ChatEdit *edit = mle();
+			QTextCursor cursor(edit->textCursor());
+			if( cursor.position() > 0 )
+			{
+			    nick.prepend(" ");
+			    nick.append(" ");
+			}
+			else
+			    nick.append(": ");
+			//edit.moveCursor(QTextCursor::End);
+			edit->insertPlainText(nick);
+			edit->setFocus();
+		    }
+		    break;
+		}
+		default:
+		    break;
+	    }
+	}
 };
 
 GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j)
@@ -516,6 +548,7 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, con
 
 	ui_.lv_users->setMainDlg(this);
 	connect(ui_.lv_users, SIGNAL(action(const QString &, const Status &, int)), SLOT(lv_action(const QString &, const Status &, int)));
+	connect(ui_.lv_users, SIGNAL(mouseButtonClicked(int, Q3ListViewItem*, const QPoint&, int)), d, SLOT(onUserListMouseClicked(int, Q3ListViewItem*, const QPoint&, int)));
 
 	d->act_clear = new IconAction (tr("Clear chat window"), "psi/clearChat", tr("Clear chat window"), 0, this);
 	connect( d->act_clear, SIGNAL( activated() ), SLOT( doClearButton() ) );
