diff options
author | Simon Rettberg | 2019-02-26 11:22:50 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-02-26 11:22:50 +0100 |
commit | 873a955b60f26fc682dd3a2d079c4885d373c126 (patch) | |
tree | 729bc2420698ec44e08597e2a7f3ea78d51e2156 | |
parent | DEBUG SPAAAM (diff) | |
download | beamergui-873a955b60f26fc682dd3a2d079c4885d373c126.tar.gz beamergui-873a955b60f26fc682dd3a2d079c4885d373c126.tar.xz beamergui-873a955b60f26fc682dd3a2d079c4885d373c126.zip |
Show GUI on startup with auto-setup if there's a screen without EDID
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/xx.cpp | 11 | ||||
-rw-r--r-- | src/xx.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp index db82370..ac28a68 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -70,7 +70,7 @@ int main(int argc, char *argv[]) Widget *w = nullptr; if (CommandLine::backgroundMode() || CommandLine::showGui()) { w = new Widget(); - if (CommandLine::showGui()) { + if (CommandLine::showGui() || ScreenSetup::inst()->hasScreenWithoutEdid()) { w->show(); } } @@ -318,6 +318,17 @@ ScreenMode ScreenSetup::getCurrentMode() return ScreenMode::Clone; } +bool ScreenSetup::hasScreenWithoutEdid() +{ + for (auto oi : a->_outputMap) { + // no preferred modes pretty much means no EDID, although technically I think you could have EDID + // that doesn't provide a preferred mode... + if (oi->output != nullptr && oi->output->connection != RR_Disconnected && oi->output->npreferred == 0) + return true; + } + return false; +} + ConfigBackup ScreenSetup::setDefaultMode(bool dryRun, ScreenMode &mode) { ConfigBackup retval; @@ -67,6 +67,7 @@ public: void updateScreenResources(); void initModes(); ScreenMode getCurrentMode(); + bool hasScreenAndSecondDeviceWithoutEdidSoItCouldBeAProjector(); ConfigBackup setDefaultMode(bool dryRun, ScreenMode &mode); bool createMode(unsigned int resX, unsigned int resY, float refresh, QString name); ConfigBackup setCenteredClone(); |