Hopefully addressed #148 while detecting the patches folder

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
Alexis Maiquez 2023-03-21 07:35:41 +01:00
parent a0d1a7202f
commit 6d5c5b7825
3 changed files with 27 additions and 12 deletions

View File

@ -40,11 +40,32 @@ void CWallpaperApplication::setupContainer (CCombinedContainer& container, const
container.addPkg (basepath / "scene.pkg"); container.addPkg (basepath / "scene.pkg");
container.addPkg (basepath / "gifscene.pkg"); container.addPkg (basepath / "gifscene.pkg");
container.add (new CDirectory (this->m_context.assets)); container.add (new CDirectory (this->m_context.assets));
#if !NDEBUG
container.add (new CDirectory ("../share/")); // add two possible patches directories to the container
#else // hopefully one sticks
container.add (new CDirectory (DATADIR)); bool relative = true;
#endif /* DEBUG */ bool absolute = true;
try
{
container.add (new CDirectory ("../share/"));
}
catch (std::runtime_error& ex)
{
relative = false;
}
try
{
container.add (new CDirectory (DATADIR));
}
catch (std::runtime_error& ex)
{
absolute = false;
}
if (!relative && !absolute)
sLog.error ("WARNING: Shader patches directory cannot be found, this might make some backgrounds not work properly");
// TODO: move this somewhere else? // TODO: move this somewhere else?
CVirtualContainer* virtualContainer = new CVirtualContainer (); CVirtualContainer* virtualContainer = new CVirtualContainer ();

View File

@ -8,7 +8,7 @@
using namespace WallpaperEngine::Assets; using namespace WallpaperEngine::Assets;
CDirectory::CDirectory (std::filesystem::path basepath) : CDirectory::CDirectory (std::filesystem::path basepath) :
m_basepath (std::move(basepath)) m_basepath (std::move(basepath))
{ {
// ensure the specified path exists // ensure the specified path exists

View File

@ -13,9 +13,7 @@ void CustomXIOErrorExitHandler (Display* dsp, void* userdata)
{ {
auto context = static_cast <CX11Output*> (userdata); auto context = static_cast <CX11Output*> (userdata);
#if !NDEBUG
sLog.debugerror ("Critical XServer error detected. Attempting to recover..."); sLog.debugerror ("Critical XServer error detected. Attempting to recover...");
#endif /* DEBUG */
// refetch all the resources // refetch all the resources
context->reset (); context->reset ();
@ -23,9 +21,7 @@ void CustomXIOErrorExitHandler (Display* dsp, void* userdata)
int CustomXErrorHandler (Display* dpy, XErrorEvent* event) int CustomXErrorHandler (Display* dpy, XErrorEvent* event)
{ {
#if !NDEBUG
sLog.debugerror ("Detected X error"); sLog.debugerror ("Detected X error");
#endif /* DEBUG */
// call the original handler so we can keep some information reporting // call the original handler so we can keep some information reporting
originalErrorHandler (dpy, event); originalErrorHandler (dpy, event);
@ -35,9 +31,7 @@ int CustomXErrorHandler (Display* dpy, XErrorEvent* event)
int CustomXIOErrorHandler (Display* dsp) int CustomXIOErrorHandler (Display* dsp)
{ {
#if !NDEBUG
sLog.debugerror ("Detected X error"); sLog.debugerror ("Detected X error");
#endif /* DEBUG */
return 0; return 0;
} }