diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index d95b9eb3..1bd1b45c 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -95,8 +95,14 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) if (UBPlatformUtils::hasVirtualKeyboard()) { +#ifdef Q_WS_X11 + mKeyboardPalette = UBKeyboardPalette::create(0); + connect(mTransparentDrawingView, SIGNAL(hidden()), mKeyboardPalette, SLOT(hide())); + connect(mTransparentDrawingView, SIGNAL(shown()), this, SLOT(showKeyboard())); +#else mKeyboardPalette = UBKeyboardPalette::create(mTransparentDrawingView); mKeyboardPalette->setParent(mTransparentDrawingView); +#endif connect(mKeyboardPalette, SIGNAL(keyboardActivated(bool)), mTransparentDrawingView, SLOT(virtualKeyboardActivated(bool))); connect(mKeyboardPalette, SIGNAL(moved(QPoint)), this, SLOT(refreshMask())); } @@ -160,6 +166,11 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) void UBDesktopAnnotationController::showKeyboard(bool show) { + #ifdef Q_WS_X11 + if (!mTransparentDrawingView->isVisible()) + return; + #endif + if(mKeyboardPalette) { if(show) @@ -170,6 +181,11 @@ void UBDesktopAnnotationController::showKeyboard(bool show) } } +void UBDesktopAnnotationController::showKeyboard() +{ + if (UBApplication::mainWindow->actionVirtualKeyboard->isChecked()) + mKeyboardPalette->show(); +} UBDesktopAnnotationController::~UBDesktopAnnotationController() { diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h index 605ce5d9..c4e9fea3 100644 --- a/src/desktop/UBDesktopAnnotationController.h +++ b/src/desktop/UBDesktopAnnotationController.h @@ -71,6 +71,7 @@ class UBDesktopAnnotationController : public QObject void updateBackground(); void showKeyboard(bool show); + void showKeyboard(); //X11 virtual keyboard working only needed signals: /**