void CanvasQt::keyPressEvent(QKeyEvent* keyEvent) { #ifdef USE_QWINDOW QWindow* parent = this->parent(); #else QWidget* parent = this->parentWidget(); #endif if (parent && keyEvent->key() == Qt::Key_F && keyEvent->modifiers() == Qt::ShiftModifier){ if(parent->windowState() == Qt::WindowFullScreen) { parent->showNormal(); } else { parent->showFullScreen(); } } KeyboardEvent pressKeyEvent(EventConverterQt::getKeyButton(keyEvent), EventConverterQt::getModifier(keyEvent), KeyboardEvent::KEY_STATE_PRESS); Canvas::keyPressEvent(&pressKeyEvent); if(pressKeyEvent.hasBeenUsed()) { keyEvent->accept(); } else { QGLWindow::keyPressEvent(keyEvent); } }
void Nexus::onOpenWindow(QObject* object) { QWindow* window = static_cast<QWindow*>(object); if (window->windowState() & QWindow::Minimized) window->showNormal(); window->raise(); window->requestActivate(); }
void moveToForeground() { QWindowList l = QGuiApplication::allWindows(); if (l.size() > 0 && l.at(0) != nullptr) { QWindow* w = l.at(0); w->requestActivate(); if (w->windowState() & Qt::WindowMinimized) { w->showNormal(); } } }
void Wpp::realOnKeyboardVisibleChanged() { #if defined(Q_OS_IOS) || defined(Q_OS_ANDROID) qDebug() << __FUNCTION__; //#ifdef Q_OS_IOS QScreen *screen = QGuiApplication::primaryScreen(); QWindow *window = QGuiApplication::focusWindow(); QInputMethod *inputMethod = QGuiApplication::inputMethod(); if ( inputMethod->isVisible() ) { if ( m_softInputMode == ADJUST_RESIZE && window != 0 && screen != 0 ) { #ifdef Q_OS_IOS QRectF kbRect = inputMethod->keyboardRectangle(); #endif #ifdef Q_OS_ANDROID /* Rect r = new Rect(); View rootview = this.getWindow().getDecorView(); // this = activity rootview.getWindowVisibleDisplayFrame(r); */ QAndroidJniObject visibleFrameRect("android/graphics/Rect","()V"); qDebug() << __FUNCTION__ << "visibleFrameRect.isValid()=" << visibleFrameRect.isValid(); QAndroidJniObject activity = QtAndroid::androidActivity(); qDebug() << __FUNCTION__ << "activity.isValid()=" << activity.isValid(); QAndroidJniObject androidWindow = activity.callObjectMethod( "getWindow","()Landroid/view/Window;"); qDebug() << __FUNCTION__ << "androidWindow.isValid()=" << androidWindow.isValid(); QAndroidJniObject rootview = androidWindow.callObjectMethod( "getDecorView","()Landroid/view/View;"); qDebug() << __FUNCTION__ << "rootview.isValid()=" << rootview.isValid(); //rootview.callMethod<void>("getWindowVisibleDisplayFrame","(Landroid/graphics/Rect;)V",visibleFrameRect.object<jobject>()); rootview.callMethod<jboolean>("getLocalVisibleRect","(Landroid/graphics/Rect;)Z",visibleFrameRect.object<jobject>()); qDebug() << __FUNCTION__ << "rootview.isValid()=" << rootview.isValid(); qDebug() << __FUNCTION__ << "visibleFrameRect.isValid()=" << visibleFrameRect.isValid(); jint visibleFrameTop = visibleFrameRect.getField<jint>("top"); qDebug() << __FUNCTION__ << "visibleFrameRect.visibleFrameTop=" << visibleFrameTop; jint visibleFrameLeft = visibleFrameRect.getField<jint>("left"); qDebug() << __FUNCTION__ << "visibleFrameRect.visibleFrameLeft=" << visibleFrameLeft; jint visibleFrameWidth = visibleFrameRect.callMethod<jint>("width","()I"); qDebug() << __FUNCTION__ << "visibleFrameRect.width()=" << visibleFrameWidth; jint visibleFrameHeight = visibleFrameRect.callMethod<jint>("height","()I"); qDebug() << __FUNCTION__ << "visibleFrameRect.height()=" << visibleFrameHeight; int keyboardHeight = 0; if ( screen != 0 ) { qDebug() << __FUNCTION__ << "screen.height()=" << screen->size().height(); keyboardHeight = screen->size().height() - visibleFrameHeight; qDebug() << __FUNCTION__ << "keyboardHeight=" << keyboardHeight; } QRectF kbRect(0, visibleFrameHeight, visibleFrameWidth, keyboardHeight);//assume keyboard from bottom side #endif qDebug() << __FUNCTION__ << "kbRect=" << kbRect; window->showNormal(); if ( window->height() == screen->size().height() ) { qDebug() << __FUNCTION__ << ":origSize=" << window->size(); Q_ASSERT( kbRect.width() == (qreal)window->width() );//assume keyboard appears from bottom side of app window window->setHeight( window->height() - kbRect.height() ); qDebug() << __FUNCTION__ << ":resize-ok-to:" << window->size(); } } } else { if ( m_softInputMode == ADJUST_RESIZE && window != 0 && screen != 0 ) { window->setHeight( screen->size().height() ); qDebug() << __FUNCTION__ << ":resize-ok-to:" << screen->size(); } window->showNormal(); } //#endif #endif }