void QWidget::setMicroFocusHint(int x, int y, int width, int height, bool text, QFont *) { if (QRect(x, y, width, height) != microFocusHint()) { d->createExtra(); d->extra->micro_focus_hint.setRect(x, y, width, height); } #ifndef QT_NO_QWS_INPUTMETHODS if (text) { QWidget *tlw = window(); int winid = tlw->internalWinId(); QPoint p(x, y + height); QPoint gp = mapToGlobal(p); QRect r = QRect(mapToGlobal(QPoint(0,0)), size()); r.setBottom(tlw->geometry().bottom()); //qDebug("QWidget::setMicroFocusHint %d %d %d %d", r.x(), // r.y(), r.width(), r.height()); QInputContext::setMicroFocusWidget(this); qwsDisplay()->setIMInfo(winid, gp.x(), gp.y(), r); //send font info, ###if necessary qwsDisplay()->setInputFont(winid, font()); } #endif }
void QWidget::setMicroFocusHint( int x, int y, int width, int height, bool text, QFont *) { if ( QRect( x, y, width, height ) != microFocusHint() ) extraData()->micro_focus_hint.setRect( x, y, width, height ); #ifndef QT_NO_QWS_IM if ( text ) { QPoint p( x, y + height ); QPoint gp = mapToGlobal( p ); qwsDisplay()->setMicroFocus( gp.x(), gp.y()); } #endif }