summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-08-22 10:41:44 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-08-22 10:41:44 +0800
commitc4a1a72e576f268382a355ccd66b9d717aaf555f (patch)
treed3e90db5bc63f709ccc66da6bf6bac522df746b1
parent659f9387df90ebb90a9d832f8d4d86aac28573a6 (diff)
downloadibus-c4a1a72e576f268382a355ccd66b9d717aaf555f.tar.gz
ibus-c4a1a72e576f268382a355ccd66b9d717aaf555f.tar.xz
ibus-c4a1a72e576f268382a355ccd66b9d717aaf555f.zip
Fix problem when restart ibus-daemon.
-rw-r--r--client/qt4/ibus-client.cpp3
-rw-r--r--client/qt4/ibus-client.h1
-rw-r--r--client/qt4/ibus-input-context.cpp3
3 files changed, 6 insertions, 1 deletions
diff --git a/client/qt4/ibus-client.cpp b/client/qt4/ibus-client.cpp
index 41d97f8..c7f5397 100644
--- a/client/qt4/ibus-client.cpp
+++ b/client/qt4/ibus-client.cpp
@@ -57,6 +57,7 @@ IBusClient::IBusClient ()
session = getenv ("DISPLAY");
session.replace (":", "-");
+ ibus_path = QString("/tmp/ibus-%1/ibus-%2").arg (username, session);
ibus_addr = QString("unix:path=/tmp/ibus-%1/ibus-%2").arg (username, session);
connectToBus ();
@@ -471,7 +472,7 @@ IBusClient::slotDirectoryChanged (const QString & /*path*/)
disconnectFromBus ();
if (ibus == NULL ) {
- if (QFile::exists (ibus_addr)) {
+ if (QFile::exists (ibus_path)) {
usleep (500);
connectToBus ();
}
diff --git a/client/qt4/ibus-client.h b/client/qt4/ibus-client.h
index ff21c07..abddae6 100644
--- a/client/qt4/ibus-client.h
+++ b/client/qt4/ibus-client.h
@@ -81,6 +81,7 @@ private:
QHash <QString, IBusInputContext *>context_dict;
QString username;
QString session;
+ QString ibus_path;
QString ibus_addr;
};
diff --git a/client/qt4/ibus-input-context.cpp b/client/qt4/ibus-input-context.cpp
index 28e8af0..d120f1e 100644
--- a/client/qt4/ibus-input-context.cpp
+++ b/client/qt4/ibus-input-context.cpp
@@ -164,6 +164,9 @@ void
IBusInputContext::setIC (QString ic)
{
this->ic = ic;
+ if (has_focus && !ic.isEmpty ()) {
+ client->focusIn (this);
+ }
}
QString