mirror of
https://github.com/hyprwm/hyprpaper.git
synced 2024-11-16 22:25:59 +01:00
more logs and allow mons without a wp
This commit is contained in:
parent
8df121070a
commit
7ea6e34d3f
3 changed files with 13 additions and 6 deletions
|
@ -50,7 +50,7 @@ void CHyprpaper::recheckAllMonitors() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprpaper::ensureMonitorHasActiveWallpaper(SMonitor* pMonitor) {
|
void CHyprpaper::ensureMonitorHasActiveWallpaper(SMonitor* pMonitor) {
|
||||||
if (!pMonitor->readyForLS)
|
if (!pMonitor->readyForLS || !pMonitor->hasATarget)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto it = m_mMonitorActiveWallpaperTargets.find(pMonitor);
|
auto it = m_mMonitorActiveWallpaperTargets.find(pMonitor);
|
||||||
|
@ -63,9 +63,6 @@ void CHyprpaper::ensureMonitorHasActiveWallpaper(SMonitor* pMonitor) {
|
||||||
if (it->second)
|
if (it->second)
|
||||||
return; // has
|
return; // has
|
||||||
|
|
||||||
// create it for thy
|
|
||||||
createLSForMonitor(pMonitor);
|
|
||||||
|
|
||||||
// get the target
|
// get the target
|
||||||
for (auto&[mon, path1] : m_mMonitorActiveWallpapers) {
|
for (auto&[mon, path1] : m_mMonitorActiveWallpapers) {
|
||||||
if (mon == pMonitor->name) {
|
if (mon == pMonitor->name) {
|
||||||
|
@ -80,10 +77,13 @@ void CHyprpaper::ensureMonitorHasActiveWallpaper(SMonitor* pMonitor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!it->second) {
|
if (!it->second) {
|
||||||
Debug::log(CRIT, "No target for monitor %s!!", pMonitor->name.c_str());
|
pMonitor->hasATarget = false;
|
||||||
exit(1);
|
Debug::log(WARN, "Monitor %s does not have a target! A wallpaper will not be created.", pMonitor->name.c_str());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create it for thy
|
||||||
|
createLSForMonitor(pMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprpaper::createLSForMonitor(SMonitor* pMonitor) {
|
void CHyprpaper::createLSForMonitor(SMonitor* pMonitor) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ struct SMonitor {
|
||||||
int scale;
|
int scale;
|
||||||
|
|
||||||
bool readyForLS = false;
|
bool readyForLS = false;
|
||||||
|
bool hasATarget = true;
|
||||||
|
|
||||||
zwlr_layer_surface_v1* pLayerSurface = nullptr;
|
zwlr_layer_surface_v1* pLayerSurface = nullptr;
|
||||||
wl_surface* pSurface = nullptr;
|
wl_surface* pSurface = nullptr;
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
void CWallpaperTarget::create(const std::string& path) {
|
void CWallpaperTarget::create(const std::string& path) {
|
||||||
m_szPath = path;
|
m_szPath = path;
|
||||||
|
|
||||||
|
const auto BEGINLOAD = std::chrono::system_clock::now();
|
||||||
|
|
||||||
cairo_surface_t* CAIROSURFACE = nullptr;
|
cairo_surface_t* CAIROSURFACE = nullptr;
|
||||||
if (path.find(".png") == path.length() - 4) {
|
if (path.find(".png") == path.length() - 4) {
|
||||||
CAIROSURFACE = cairo_image_surface_create_from_png(path.c_str());
|
CAIROSURFACE = cairo_image_surface_create_from_png(path.c_str());
|
||||||
|
@ -23,5 +25,9 @@ void CWallpaperTarget::create(const std::string& path) {
|
||||||
|
|
||||||
m_vSize = { cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE) };
|
m_vSize = { cairo_image_surface_get_width(CAIROSURFACE), cairo_image_surface_get_height(CAIROSURFACE) };
|
||||||
|
|
||||||
|
const auto MS = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now() - BEGINLOAD).count() / 1000.f;
|
||||||
|
|
||||||
|
Debug::log(LOG, "Preloaded target %s in %.2fms -> Pixel size: [%i, %i]", path.c_str(), MS, (int)m_vSize.x, (int)m_vSize.y);
|
||||||
|
|
||||||
m_pCairoSurface = CAIROSURFACE;
|
m_pCairoSurface = CAIROSURFACE;
|
||||||
}
|
}
|
Loading…
Reference in a new issue