Patch for OpenBoard v. 1.6.1 by Roberto Puzzanghera roberto.puzzanghera at sagredo.eu based on this patch http://webdiis.unizar.es/~spd/openboard/index.html.en More info here https://notes.sagredo.eu/other-contents-186/running-openboard-in-a-window-244.html OpenBoard runs in fullscreen mode. This seems to prevent the possibility to be recognized by Google meet as an application to share. This patch gets OpenBoard to optionally run in a window and solves the issue. With this patch OB runs in fullscreen mode by default. To run it in a window simply adjust this option to true in the config file: RunInWindow=true On linux the location of the config file is /opt/openboard/etc/OpenBoard.config. A user can override this file acting in local config file ~/.local/share/OpenBoard/OpenBoardUser.config ============================================================================================= diff -ruN OpenBoard-1.6.0a3-original/OpenBoard.pro OpenBoard-1.6.0a3/OpenBoard.pro --- OpenBoard-1.6.0a3-original/OpenBoard.pro 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/OpenBoard.pro 2020-10-24 10:58:50.421254271 +0200 @@ -442,6 +442,10 @@ QMAKE_CFLAGS += -fopenmp QMAKE_CXXFLAGS += -fopenmp QMAKE_LFLAGS += -fopenmp +# RunInWindow patch + # Necessary for CentOS/RHEL and won't harm in other distributions + INCLUDEPATH += /usr/include/ffmpeg +# end patch UB_LIBRARY.path = $$DESTDIR UB_I18N.path = $$DESTDIR/i18n UB_ETC.path = $$DESTDIR diff -ruN OpenBoard-1.6.0a3-original/resources/etc/OpenBoard.config OpenBoard-1.6.0a3/resources/etc/OpenBoard.config --- OpenBoard-1.6.0a3-original/resources/etc/OpenBoard.config 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/resources/etc/OpenBoard.config 2020-10-24 10:59:50.005263852 +0200 @@ -14,6 +14,7 @@ PageCacheSize=20 PreferredLanguage=fr_CH ProductWebAddress=http://www.openboard.ch +RunInWindow=false SoftwareUpdateURL=http://www.openboard.ch/update.json StartMode= SwapControlAndDisplayScreens=false diff -ruN OpenBoard-1.6.0a3-original/src/core/UBApplication.cpp OpenBoard-1.6.0a3/src/core/UBApplication.cpp --- OpenBoard-1.6.0a3-original/src/core/UBApplication.cpp 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/src/core/UBApplication.cpp 2020-10-24 11:03:09.881941449 +0200 @@ -277,8 +277,21 @@ gs->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true); gs->setAttribute(QWebSettings::DnsPrefetchEnabled, true); + /* RunInWindow patch */ + if (UBSettings::settings()->appRunInWindow->get().toBool()) { + mainWindow = new UBMainWindow(0, + Qt::Window | + Qt::WindowCloseButtonHint | + Qt::WindowMinimizeButtonHint | + Qt::WindowMaximizeButtonHint | + Qt::WindowShadeButtonHint + ); // deleted by application destructor + } else { + mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor + } + /* mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor */ + /* end patch */ - mainWindow = new UBMainWindow(0, Qt::FramelessWindowHint); // deleted by application destructor mainWindow->setAttribute(Qt::WA_NativeWindow, true); mainWindow->actionCopy->setShortcuts(QKeySequence::Copy); diff -ruN OpenBoard-1.6.0a3-original/src/core/UBSettings.cpp OpenBoard-1.6.0a3/src/core/UBSettings.cpp --- OpenBoard-1.6.0a3-original/src/core/UBSettings.cpp 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/src/core/UBSettings.cpp 2020-10-24 11:02:43.074387051 +0200 @@ -265,6 +265,9 @@ appLookForOpenSankoreInstall = new UBSetting(this, "App", "LookForOpenSankoreInstall", true); appStartMode = new UBSetting(this, "App", "StartMode", ""); + /* RunInWindow patch */ + appRunInWindow = new UBSetting(this, "App", "RunInWindow", false); + /* end patch */ featureSliderPosition = new UBSetting(this, "Board", "FeatureSliderPosition", 40); diff -ruN OpenBoard-1.6.0a3-original/src/core/UBSettings.h OpenBoard-1.6.0a3/src/core/UBSettings.h --- OpenBoard-1.6.0a3-original/src/core/UBSettings.h 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/src/core/UBSettings.h 2020-10-24 11:06:13.206894166 +0200 @@ -260,7 +260,9 @@ UBSetting* appHideSwapDisplayScreens; UBSetting* appToolBarOrientationVertical; UBSetting* appPreferredLanguage; - + /* RunInWindow patch */ + UBSetting* appRunInWindow; + /* end patch */ UBSetting* appIsInSoftwareUpdateProcess; UBSetting* appLastSessionDocumentUUID; diff -ruN OpenBoard-1.6.0a3-original/src/frameworks/UBPlatformUtils_linux.cpp OpenBoard-1.6.0a3/src/frameworks/UBPlatformUtils_linux.cpp --- OpenBoard-1.6.0a3-original/src/frameworks/UBPlatformUtils_linux.cpp 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/src/frameworks/UBPlatformUtils_linux.cpp 2020-10-24 11:00:43.708371185 +0200 @@ -36,7 +36,9 @@ #include #include "frameworks/UBFileSystemUtils.h" - +/* RunInWindow patch */ +#include "core/UBSettings.h" +/* end patch */ void UBPlatformUtils::init() { @@ -439,7 +441,14 @@ void UBPlatformUtils::showFullScreen(QWidget *pWidget) { - pWidget->showFullScreen(); + /* RunInWindow patch */ + /* pWidget->showFullScreen(); */ + if (UBSettings::settings()->appRunInWindow->get().toBool()) { + pWidget->showNormal(); + } else { + pWidget->showFullScreen(); + } + /* end patch */ } void UBPlatformUtils::showOSK(bool show) diff -ruN OpenBoard-1.6.0a3-original/src/frameworks/UBPlatformUtils_win.cpp OpenBoard-1.6.0a3/src/frameworks/UBPlatformUtils_win.cpp --- OpenBoard-1.6.0a3-original/src/frameworks/UBPlatformUtils_win.cpp 2020-05-22 18:40:49.000000000 +0200 +++ OpenBoard-1.6.0a3/src/frameworks/UBPlatformUtils_win.cpp 2020-10-24 11:01:26.170665369 +0200 @@ -36,6 +36,9 @@ #include "frameworks/UBFileSystemUtils.h" #include "core/memcheck.h" +/* RunInWindow patch */ +#include "core/UBSettings.h" +/* end patch */ void UBPlatformUtils::init() { @@ -436,7 +439,14 @@ void UBPlatformUtils::showFullScreen(QWidget *pWidget) { - pWidget->showFullScreen(); + /* RunInWindow patch */ + /* pWidget->showFullScreen(); */ + if (UBSettings::settings()->appRunInWindow->get().toBool()) { + pWidget->showNormal(); + } else { + pWidget->showFullScreen(); + } + /* end patch */ } void UBPlatformUtils::showOSK(bool show)