all: chase hyprland

This commit is contained in:
Vaxry 2024-04-22 15:57:18 +01:00
parent 9971fec974
commit be8f8d81ef
9 changed files with 51 additions and 54 deletions

View File

@ -43,7 +43,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
HyprlandAPI::reloadConfig();
HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(self, data); });
static auto P = HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(self, data); });
// add deco to existing windows
for (auto& w : g_pCompositor->m_vWindows) {

View File

@ -34,35 +34,35 @@ class CHyprBar : public IHyprWindowDecoration {
CWindow* getOwner();
private:
SWindowDecorationExtents m_seExtents;
SWindowDecorationExtents m_seExtents;
CWindow* m_pWindow = nullptr;
CWindow* m_pWindow = nullptr;
CBox m_bAssignedBox;
CBox m_bAssignedBox;
CTexture m_tTextTex;
CTexture m_tButtonsTex;
CTexture m_tTextTex;
CTexture m_tButtonsTex;
bool m_bWindowSizeChanged = false;
bool m_bWindowSizeChanged = false;
Vector2D cursorRelativeToBar();
Vector2D cursorRelativeToBar();
void renderBarTitle(const Vector2D& bufferSize, const float scale);
void renderText(CTexture& out, const std::string& text, const CColor& color, const Vector2D& bufferSize, const float scale, const int fontSize);
void renderBarButtons(const Vector2D& bufferSize, const float scale);
void renderBarButtonsText(CBox* barBox, const float scale, const float a);
void onMouseDown(SCallbackInfo& info, wlr_pointer_button_event* e);
void onMouseMove(Vector2D coords);
CBox assignedBoxGlobal();
void renderBarTitle(const Vector2D& bufferSize, const float scale);
void renderText(CTexture& out, const std::string& text, const CColor& color, const Vector2D& bufferSize, const float scale, const int fontSize);
void renderBarButtons(const Vector2D& bufferSize, const float scale);
void renderBarButtonsText(CBox* barBox, const float scale, const float a);
void onMouseDown(SCallbackInfo& info, wlr_pointer_button_event* e);
void onMouseMove(Vector2D coords);
CBox assignedBoxGlobal();
HOOK_CALLBACK_FN* m_pMouseButtonCallback;
HOOK_CALLBACK_FN* m_pMouseMoveCallback;
std::shared_ptr<HOOK_CALLBACK_FN> m_pMouseButtonCallback;
std::shared_ptr<HOOK_CALLBACK_FN> m_pMouseMoveCallback;
std::string m_szLastTitle;
std::string m_szLastTitle;
bool m_bDraggingThis = false;
bool m_bDragPending = false;
bool m_bCancelledDown = false;
bool m_bDraggingThis = false;
bool m_bDragPending = false;
bool m_bCancelledDown = false;
// for dynamic updates
int m_iLastHeight = 0;

View File

@ -86,8 +86,8 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
g_pGlobalState = std::make_unique<SGlobalState>();
HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(self, data); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "closeWindow", [&](void* self, SCallbackInfo& info, std::any data) { onCloseWindow(self, data); });
static auto P = HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(self, data); });
static auto P2 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "closeWindow", [&](void* self, SCallbackInfo& info, std::any data) { onCloseWindow(self, data); });
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_color", Hyprlang::INT{configStringToInt("rgba(33333388)")});
HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_height", Hyprlang::INT{15});

View File

@ -138,8 +138,7 @@ static void onExpoDispatcher(std::string arg) {
}
static void failNotif(const std::string& reason) {
HyprlandAPI::addNotification(PHANDLE, "[hyprexpo] Failure in initialization: " + reason,
CColor{1.0, 0.2, 0.2, 1.0}, 5000);
HyprlandAPI::addNotification(PHANDLE, "[hyprexpo] Failure in initialization: " + reason, CColor{1.0, 0.2, 0.2, 1.0}, 5000);
}
APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
@ -185,15 +184,15 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
throw std::runtime_error("[he] Failed initializing hooks");
}
HyprlandAPI::registerCallbackDynamic(PHANDLE, "preRender", [](void* self, SCallbackInfo& info, std::any param) {
static auto P = HyprlandAPI::registerCallbackDynamic(PHANDLE, "preRender", [](void* self, SCallbackInfo& info, std::any param) {
if (!g_pOverview)
return;
g_pOverview->onPreRender();
});
HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeBegin", [](void* self, SCallbackInfo& info, std::any data) { swipeBegin(self, info, data); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeEnd", [](void* self, SCallbackInfo& info, std::any data) { swipeEnd(self, info, data); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeUpdate", [](void* self, SCallbackInfo& info, std::any data) { swipeUpdate(self, info, data); });
static auto P2 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeBegin", [](void* self, SCallbackInfo& info, std::any data) { swipeBegin(self, info, data); });
static auto P3 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeEnd", [](void* self, SCallbackInfo& info, std::any data) { swipeEnd(self, info, data); });
static auto P4 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "swipeUpdate", [](void* self, SCallbackInfo& info, std::any data) { swipeUpdate(self, info, data); });
HyprlandAPI::addDispatcher(PHANDLE, "hyprexpo:expo", onExpoDispatcher);

View File

@ -17,10 +17,6 @@ static void removeOverview(void*) {
COverview::~COverview() {
g_pHyprRenderer->makeEGLCurrent();
images.clear(); // otherwise we get a vram leak
g_pHookSystem->unhook(touchUpHook);
g_pHookSystem->unhook(touchMoveHook);
g_pHookSystem->unhook(mouseButtonHook);
g_pHookSystem->unhook(mouseMoveHook);
g_pInputManager->unsetCursorImage();
g_pHyprOpenGL->markBlurDirtyForMonitor(pMonitor);
}

View File

@ -54,27 +54,27 @@ class COverview {
CBox box;
};
Vector2D lastMousePosLocal = Vector2D{};
Vector2D lastMousePosLocal = Vector2D{};
int openedID = -1;
int closeOnID = -1;
int openedID = -1;
int closeOnID = -1;
std::vector<SWorkspaceImage> images;
std::vector<SWorkspaceImage> images;
PHLWORKSPACE startedOn;
PHLWORKSPACE startedOn;
CAnimatedVariable<Vector2D> size;
CAnimatedVariable<Vector2D> pos;
CAnimatedVariable<Vector2D> size;
CAnimatedVariable<Vector2D> pos;
bool closing = false;
bool closing = false;
HOOK_CALLBACK_FN* mouseMoveHook = nullptr;
HOOK_CALLBACK_FN* mouseButtonHook = nullptr;
HOOK_CALLBACK_FN* touchMoveHook = nullptr;
HOOK_CALLBACK_FN* touchUpHook = nullptr;
std::shared_ptr<HOOK_CALLBACK_FN> mouseMoveHook;
std::shared_ptr<HOOK_CALLBACK_FN> mouseButtonHook;
std::shared_ptr<HOOK_CALLBACK_FN> touchMoveHook;
std::shared_ptr<HOOK_CALLBACK_FN> touchUpHook;
bool swipe = false;
bool swipeWasCommenced = false;
bool swipe = false;
bool swipeWasCommenced = false;
};
inline std::unique_ptr<COverview> g_pOverview;

View File

@ -31,12 +31,12 @@ CTrail::CTrail(CWindow* pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWi
m_vLastWindowPos = pWindow->m_vRealPosition.value();
m_vLastWindowSize = pWindow->m_vRealSize.value();
pTickCb = g_pHookSystem->hookDynamic("trailTick", [this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
pTickCb = HyprlandAPI::registerCallbackDynamic(PHANDLE, "trailTick", [this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
}
CTrail::~CTrail() {
damageEntire();
g_pHookSystem->unhook(pTickCb);
HyprlandAPI::unregisterCallback(PHANDLE, pTickCb);
}
SDecorationPositioningInfo CTrail::getPositioningInfo() {

View File

@ -46,7 +46,7 @@ class CTrail : public IHyprWindowDecoration {
virtual void damageEntire();
private:
HOOK_CALLBACK_FN* pTickCb = nullptr;
std::shared_ptr<HOOK_CALLBACK_FN> pTickCb;
void onTick();
std::deque<std::pair<box, std::chrono::system_clock::time_point>> m_dLastGeoms;

View File

@ -138,10 +138,12 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
throw std::runtime_error("[hww] Version mismatch");
}
HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(std::any_cast<CWindow*>(data)); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "closeWindow", [&](void* self, SCallbackInfo& info, std::any data) { onCloseWindow(std::any_cast<CWindow*>(data)); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "render", [&](void* self, SCallbackInfo& info, std::any data) { onRenderStage(std::any_cast<eRenderStage>(data)); });
HyprlandAPI::registerCallbackDynamic(PHANDLE, "configReloaded", [&](void* self, SCallbackInfo& info, std::any data) { onConfigReloaded(); });
// clang-format off
static auto P = HyprlandAPI::registerCallbackDynamic(PHANDLE, "openWindow", [&](void* self, SCallbackInfo& info, std::any data) { onNewWindow(std::any_cast<CWindow*>(data)); });
static auto P2 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "closeWindow", [&](void* self, SCallbackInfo& info, std::any data) { onCloseWindow(std::any_cast<CWindow*>(data)); });
static auto P3 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "render", [&](void* self, SCallbackInfo& info, std::any data) { onRenderStage(std::any_cast<eRenderStage>(data)); });
static auto P4 = HyprlandAPI::registerCallbackDynamic(PHANDLE, "configReloaded", [&](void* self, SCallbackInfo& info, std::any data) { onConfigReloaded(); });
// clang-format on
auto fns = HyprlandAPI::findFunctionsByName(PHANDLE, "onCommit");
if (fns.size() < 1)