Bugzilla – Attachment 222635 Details for
Bug 398526
Ctrl-Space doesn't enable Chinese input.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Forgot Password
[patch]
Patch for libqt4 to delay input method initializing until chosen
qt4-input-method-lazy-load.patch (text/plain), 2.64 KB, created by
Peng Wu
on 2008-06-18 04:14:25 UTC
(
hide
)
Description:
Patch for libqt4 to delay input method initializing until chosen
Filename:
MIME Type:
Creator:
Peng Wu
Created:
2008-06-18 04:14:25 UTC
Size:
2.64 KB
patch
obsolete
>Index: qt-x11-opensource-src-4.4.0/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp >=================================================================== >--- qt-x11-opensource-src-4.4.0.orig/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp >+++ qt-x11-opensource-src-4.4.0/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp >@@ -75,12 +75,14 @@ QMultiInputContext::QMultiInputContext() > if (keys.at(i).contains(QLatin1String("imsw"))) > keys.removeAt(i); > >+ m_keys = keys; >+ > QString def = QLatin1String(getenv("QT_IM_MODULE")); > if (def.isEmpty()) { > QSettings settings; > def = settings.value(QLatin1String("/qt/DefaultInputMethod"), QLatin1String("xim")).toString(); > } >- current = keys.indexOf(def); >+ current = m_keys.indexOf(def); > if (current < 0) > current = 0; > >@@ -89,13 +91,16 @@ QMultiInputContext::QMultiInputContext() > separator->setSeparator(true); > > QActionGroup *group = new QActionGroup(this); >- for (int i = 0; i < keys.size(); ++i) { >- slaves.append(QInputContextFactory::create(keys.at(i), this)); >- QAction *a = menu->addAction(slaves.at(i)->identifierName()); >+ for (int i = 0; i < m_keys.size(); ++i) { >+ //slaves.append(QInputContextFactory::create(keys.at(i), this)); >+ slaves.append(NULL); >+ QAction *a = menu->addAction(m_keys.at(i)); > a->setCheckable(true); > group->addAction(a); >- if (i == current) >+ if (i == current) { >+ slaves.replace(current, QInputContextFactory::create(m_keys.at(i), this)); > a->setChecked(true); >+ } > } > connect(group, SIGNAL(triggered(QAction*)), this, SLOT(changeSlave(QAction*))); > >@@ -187,8 +192,10 @@ QList<QAction *> QMultiInputContext::act > > void QMultiInputContext::changeSlave(QAction *a) > { >- for (int i = 0; i < slaves.size(); ++i) { >- if (slaves.at(i)->identifierName() == a->text()) { >+ for (int i = 0; i < m_keys.size(); ++i) { >+ if (m_keys.at(i) == a->text()) { >+ if (NULL == slaves.at(i)) >+ slaves.replace(i, QInputContextFactory::create(m_keys.at(i), this)); > current = i; > return; > } >Index: qt-x11-opensource-src-4.4.0/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h >=================================================================== >--- qt-x11-opensource-src-4.4.0.orig/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h >+++ qt-x11-opensource-src-4.4.0/src/plugins/inputmethods/imsw-multi/qmultiinputcontext.h >@@ -109,6 +109,7 @@ private: > QList<QInputContext *> slaves; > QMenu *menu; > QAction *separator; >+ QStringList m_keys; > }; > > #endif // Q_NO_IM
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 398526
: 222635