Browse Source

Focus current chat widget text input when window is activated or empty window space clicked.

pull/2688/head
rku 10 years ago
parent
commit
5cb5f2e367
  1. 20
      src/widget/widget.cpp
  2. 1
      src/widget/widget.h

20
src/widget/widget.cpp

@ -1577,6 +1577,10 @@ bool Widget::event(QEvent * e) @@ -1577,6 +1577,10 @@ bool Widget::event(QEvent * e)
{
switch (e->type())
{
case QEvent::MouseButtonPress:
case QEvent::MouseButtonDblClick:
focusChatInput();
break;
case QEvent::WindowActivate:
if (activeChatroomWidget != nullptr)
{
@ -1584,6 +1588,7 @@ bool Widget::event(QEvent * e) @@ -1584,6 +1588,7 @@ bool Widget::event(QEvent * e)
activeChatroomWidget->updateStatusLight();
setWindowTitle(activeChatroomWidget->getTitle());
}
if (eventFlag)
{
eventFlag = false;
@ -1591,13 +1596,15 @@ bool Widget::event(QEvent * e) @@ -1591,13 +1596,15 @@ bool Widget::event(QEvent * e)
updateIcons();
}
focusChatInput();
#ifdef Q_OS_MAC
emit windowStateChanged(windowState());
case QEvent::WindowStateChange:
Nexus::getInstance().updateWindowsStates();
#endif
break;
default:
break;
}
@ -2080,3 +2087,14 @@ void Widget::retranslateUi() @@ -2080,3 +2087,14 @@ void Widget::retranslateUi()
previousConversationAction->setText(tr("Previous Conversation"));
#endif
}
void Widget::focusChatInput()
{
if (activeChatroomWidget)
{
if (Friend* f = activeChatroomWidget->getFriend())
f->getChatForm()->focusInput();
else if (Group* g = activeChatroomWidget->getGroup())
g->getChatForm()->focusInput();
}
}

1
src/widget/widget.h

@ -221,6 +221,7 @@ private: @@ -221,6 +221,7 @@ private:
static bool filterOnline(int index);
static bool filterOffline(int index);
void retranslateUi();
void focusChatInput();
private:
SystemTrayIcon *icon;

Loading…
Cancel
Save