Merge pull request #23 from levnikmyskin/fix/fix_build_hyprlang

Fix build for Hyprland >=0.36. Closes #21
This commit is contained in:
Alessio Molinari 2024-02-28 23:11:39 +01:00 committed by GitHub
commit 9010a4a296
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 25 additions and 21 deletions

View File

@ -176,14 +176,14 @@ void VirtualDeskManager::loadLayoutConf() {
// Maybe in a future release :)
if (confLoaded)
return;
static auto* const PREMEMBER_LAYOUT = &HyprlandAPI::getConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF)->strValue;
static auto* const PREMEMBER_LAYOUT = (Hyprlang::STRING const*)HyprlandAPI::getConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF)->getDataStaticPtr();
conf = layoutConfFromString(*PREMEMBER_LAYOUT);
confLoaded = true;
}
void VirtualDeskManager::cycleWorkspaces() {
static auto* const PCYCLEWORKSPACES = &HyprlandAPI::getConfigValue(PHANDLE, CYCLEWORKSPACES_CONF)->intValue;
if (!*PCYCLEWORKSPACES)
static auto* const PCYCLEWORKSPACES = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, CYCLEWORKSPACES_CONF)->getDataStaticPtr();
if (!**PCYCLEWORKSPACES)
return;
auto n_monitors = g_pCompositor->m_vMonitors.size();

View File

@ -26,12 +26,12 @@ bool needsReloading = false;
bool monitorLayoutChanging = false;
inline CFunctionHook* g_pMonitorDestroy = nullptr;
typedef void (*origMonitorDestroy)(void*, void*);
typedef void (*origMonitorDestroy)(void*, void*);
inline CFunctionHook* g_pMonitorAdded = nullptr;
typedef void (*origMonitorAdded)(void*, void*);
inline CFunctionHook* g_pMonitorAdded = nullptr;
typedef void (*origMonitorAdded)(void*, void*);
void parseNamesConf(std::string& conf) {
void parseNamesConf(std::string& conf) {
size_t pos;
size_t delim;
std::string rule;
@ -131,8 +131,9 @@ void printVdesk(std::string name) {
}
void printVDeskDispatch(std::string arg) {
static auto* const PVDESKNAMES = &HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF)->strValue;
parseNamesConf(*PVDESKNAMES);
std::string vdesknamesConf = std::any_cast<Hyprlang::STRING>(HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF));
parseNamesConf(vdesknamesConf);
if (arg.length() == 0) {
printVdesk(manager->activeVdesk()->id);
@ -217,13 +218,16 @@ void onRender(void*, SCallbackInfo&, std::any val) {
}
void onConfigReloaded(void*, SCallbackInfo&, std::any val) {
static auto* const PNOTIFYINIT = &HyprlandAPI::getConfigValue(PHANDLE, NOTIFY_INIT)->intValue;
if (*PNOTIFYINIT && !notifiedInit) {
static auto* const PNOTIFYINIT = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, NOTIFY_INIT)->getDataStaticPtr();
printLog("aiuto");
if (**PNOTIFYINIT && !notifiedInit) {
HyprlandAPI::addNotification(PHANDLE, "Virtual desk Initialized successfully!", CColor{0.f, 1.f, 1.f, 1.f}, 5000);
notifiedInit = true;
}
static auto* const PVDESKNAMES = &HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF)->strValue;
parseNamesConf(*PVDESKNAMES);
printLog("aiuto2");
static auto* const PVDESKNAMESCONF = (Hyprlang::STRING const*)(HyprlandAPI::getConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF))->getDataStaticPtr();
auto vdeskNamesConf = std::string{*PVDESKNAMESCONF};
parseNamesConf(vdeskNamesConf);
manager->loadLayoutConf();
}
@ -257,11 +261,11 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
HyprlandAPI::addDispatcher(PHANDLE, PRINTLAYOUT_DISPATCH_STR, printLayoutDispatch);
// Configs
HyprlandAPI::addConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF, SConfigValue{.strValue = "unset"});
HyprlandAPI::addConfigValue(PHANDLE, CYCLEWORKSPACES_CONF, SConfigValue{.intValue = 1});
HyprlandAPI::addConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF, SConfigValue{.strValue = REMEMBER_SIZE});
HyprlandAPI::addConfigValue(PHANDLE, NOTIFY_INIT, SConfigValue{.intValue = 1});
HyprlandAPI::addConfigValue(PHANDLE, VERBOSE_LOGS, SConfigValue{.intValue = 0});
HyprlandAPI::addConfigValue(PHANDLE, VIRTUALDESK_NAMES_CONF, Hyprlang::STRING{"unset"});
HyprlandAPI::addConfigValue(PHANDLE, CYCLEWORKSPACES_CONF, Hyprlang::INT{1});
HyprlandAPI::addConfigValue(PHANDLE, REMEMBER_LAYOUT_CONF, Hyprlang::STRING{REMEMBER_SIZE.c_str()});
HyprlandAPI::addConfigValue(PHANDLE, NOTIFY_INIT, Hyprlang::INT{1});
HyprlandAPI::addConfigValue(PHANDLE, VERBOSE_LOGS, Hyprlang::INT{0});
onWorkspaceChangeHook = HyprlandAPI::registerCallbackDynamic(PHANDLE, "workspace", onWorkspaceChange);
onConfigReloadedHook = HyprlandAPI::registerCallbackDynamic(PHANDLE, "configReloaded", onConfigReloaded);
@ -271,5 +275,5 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
// Initialize first vdesk
HyprlandAPI::reloadConfig();
return {"virtual-desktops", "Virtual desktop like workspaces", "LevMyskin", "2.1.0"};
return {"virtual-desktops", "Virtual desktop like workspaces", "LevMyskin", "2.1.1"};
}

View File

@ -51,8 +51,8 @@ RememberLayoutConf layoutConfFromString(const std::string& conf) {
}
bool isVerbose() {
static auto* const PVERBOSELOGS = &HyprlandAPI::getConfigValue(PHANDLE, VERBOSE_LOGS)->intValue;
return *PVERBOSELOGS;
static auto* const PVERBOSELOGS = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, VERBOSE_LOGS)->getDataStaticPtr();
return **PVERBOSELOGS;
}
std::vector<std::shared_ptr<CMonitor>> currentlyEnabledMonitors(const CMonitor* exclude) {