bool correctionEnabled;
QRect keyboardRect;
QString preedit;
+ QWeakPointer<QWindow> window;
QMeeGoPlatformInputContext *q;
};
emitKeyboardRectChanged();
}
+void QMeeGoPlatformInputContext::updateServerWindowOrientation(Qt::ScreenOrientation orientation)
+{
+ d->server->appOrientationChanged(orientationAngle(orientation));
+}
+
void QMeeGoPlatformInputContext::inputItemChanged()
{
if (!d->valid)
QInputPanel *panel = qApp->inputPanel();
QObject *input = panel->inputItem();
QWindow *window = panel->inputWindow();
+ if (window != d->window.data()) {
+ if (d->window)
+ disconnect(d->window.data(), SIGNAL(contentOrientationChanged(Qt::ScreenOrientation)),
+ this, SLOT(updateServerWindowOrientation(Qt::ScreenOrientation)));
+ d->window = window;
+ if (d->window)
+ connect(d->window.data(), SIGNAL(contentOrientationChanged(Qt::ScreenOrientation)),
+ this, SLOT(updateServerWindowOrientation(Qt::ScreenOrientation)));
+ }
d->imState["focusState"] = input != 0;
if (input) {
d->active = true;
d->server->activateContext();
- // ### react to orientation changes, too
if (window)
- d->server->appOrientationChanged(orientationAngle(window->screen()->orientation()));
+ d->server->appOrientationChanged(orientationAngle(window->contentOrientation()));
}
}
d->sendStateUpdate(/*focusChanged*/true);
void setRedirectKeys(bool );
void setSelection(int start, int length);
void updateInputMethodArea(int x, int y, int width, int height);
+ void updateServerWindowOrientation(Qt::ScreenOrientation orientation);
private:
QMeeGoPlatformInputContextPrivate *d;