Chase hyprland

This commit is contained in:
Zakk
2025-05-08 22:58:54 -04:00
parent 3584e03d45
commit 247f2a56a5
2 changed files with 28 additions and 28 deletions

View File

@@ -15,7 +15,7 @@
CHyprEasyLabel::CHyprEasyLabel(PHLWINDOW pWindow, SMotionActionDesc *actionDesc) : IHyprWindowDecoration(pWindow) { CHyprEasyLabel::CHyprEasyLabel(PHLWINDOW pWindow, SMotionActionDesc *actionDesc) : IHyprWindowDecoration(pWindow) {
m_pWindow = pWindow; m_pWindow = pWindow;
const auto PMONITOR = pWindow->m_pMonitor.lock(); const auto PMONITOR = pWindow->m_monitor.lock();
PMONITOR->scheduledRecalc = true; PMONITOR->scheduledRecalc = true;
m_szWindowAddress = std::format("0x{:x}", (uintptr_t)pWindow.get()); m_szWindowAddress = std::format("0x{:x}", (uintptr_t)pWindow.get());
m_szActionCmd = std::vformat(actionDesc->commandString, std::make_format_args(m_szWindowAddress)); m_szActionCmd = std::vformat(actionDesc->commandString, std::make_format_args(m_szWindowAddress));
@@ -99,8 +99,8 @@ void CHyprEasyLabel::renderMotionString(Vector2D& bufferSize, const float scale)
cairo_surface_flush(CAIROSURFACE); cairo_surface_flush(CAIROSURFACE);
const auto DATA = cairo_image_surface_get_data(CAIROSURFACE); const auto DATA = cairo_image_surface_get_data(CAIROSURFACE);
m_tTextTex->allocate(); m_tTextTex->allocate();
m_tTextTex->m_vSize = {bufferSize.x, bufferSize.y}; m_tTextTex->m_size = {bufferSize.x, bufferSize.y};
glBindTexture(GL_TEXTURE_2D, m_tTextTex->m_iTexID); glBindTexture(GL_TEXTURE_2D, m_tTextTex->m_texID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -127,15 +127,15 @@ void CHyprEasyLabel::draw(PHLMONITOR pMonitor, float const &a) {
const auto PWINDOW = m_pWindow.lock(); const auto PWINDOW = m_pWindow.lock();
if (!PWINDOW->m_sWindowData.decorate.valueOrDefault()) if (!PWINDOW->m_windowData.decorate.valueOrDefault())
return; return;
const auto PWORKSPACE = PWINDOW->m_pWorkspace; const auto PWORKSPACE = PWINDOW->m_workspace;
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D(); const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_pinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
const auto DECOBOX = assignedBoxGlobal(); const auto DECOBOX = assignedBoxGlobal();
const auto BARBUF = DECOBOX.size() * pMonitor->scale; const auto BARBUF = DECOBOX.size() * pMonitor->m_scale;
//CBox motionBox = {DECOBOX.x - pMonitor->vecPosition.x, DECOBOX.y - pMonitor->vecPosition.y, DECOBOX.w, //CBox motionBox = {DECOBOX.x - pMonitor->vecPosition.x, DECOBOX.y - pMonitor->vecPosition.y, DECOBOX.w,
@@ -143,11 +143,11 @@ void CHyprEasyLabel::draw(PHLMONITOR pMonitor, float const &a) {
if (!m_tTextTex.get()) { if (!m_tTextTex.get()) {
renderMotionString(TEXTBUF, pMonitor->scale); renderMotionString(TEXTBUF, pMonitor->m_scale);
} }
CBox motionBox = {DECOBOX.x, DECOBOX.y, m_tTextTex->m_vSize.x, m_tTextTex->m_vSize.y}; CBox motionBox = {DECOBOX.x, DECOBOX.y, m_tTextTex->m_size.x, m_tTextTex->m_size.y};
motionBox.translate(pMonitor->vecPosition*-1).scale(pMonitor->scale).round(); motionBox.translate(pMonitor->m_vecPosition*-1).scale(pMonitor->m_scale).round();
if (motionBox.w < 1 || motionBox.h < 1) if (motionBox.w < 1 || motionBox.h < 1)
{ {
@@ -166,12 +166,12 @@ void CHyprEasyLabel::draw(PHLMONITOR pMonitor, float const &a) {
rectData.round = m_iRounding != 0; rectData.round = m_iRounding != 0;
rectData.roundingPower = m_iRounding ; rectData.roundingPower = m_iRounding ;
g_pHyprRenderer->m_sRenderPass.add(makeShared<CRectPassElement>(rectData)); g_pHyprRenderer->m_renderPass.add(makeShared<CRectPassElement>(rectData));
if (m_iBorderSize) { if (m_iBorderSize) {
CBox borderBox = {DECOBOX.x, DECOBOX.y, static_cast<double>(layoutWidth), static_cast<double>(layoutHeight)}; CBox borderBox = {DECOBOX.x, DECOBOX.y, static_cast<double>(layoutWidth), static_cast<double>(layoutHeight)};
borderBox.translate(pMonitor->vecPosition*-1).scale(pMonitor->scale).round(); borderBox.translate(pMonitor->m_vecPosition*-1).scale(pMonitor->m_scale).round();
if (borderBox.w >= 1 && borderBox.h >= 1) { if (borderBox.w >= 1 && borderBox.h >= 1) {
CBorderPassElement::SBorderData borderData; CBorderPassElement::SBorderData borderData;
borderData.box = borderBox; borderData.box = borderBox;
@@ -180,7 +180,7 @@ void CHyprEasyLabel::draw(PHLMONITOR pMonitor, float const &a) {
borderData.roundingPower = m_iRounding; borderData.roundingPower = m_iRounding;
borderData.borderSize = m_iBorderSize; borderData.borderSize = m_iBorderSize;
borderData.a = a; borderData.a = a;
g_pHyprRenderer->m_sRenderPass.add(makeShared<CBorderPassElement>(borderData)); g_pHyprRenderer->m_renderPass.add(makeShared<CBorderPassElement>(borderData));
//g_pHyprOpenGL->renderBorder(borderBox, m_cBorderGradient, scaledRounding, m_iBorderSize * pMonitor->scale, a); //g_pHyprOpenGL->renderBorder(borderBox, m_cBorderGradient, scaledRounding, m_iBorderSize * pMonitor->scale, a);
} }
} }
@@ -189,7 +189,7 @@ void CHyprEasyLabel::draw(PHLMONITOR pMonitor, float const &a) {
motionBox.round(); motionBox.round();
texData.tex = m_tTextTex; texData.tex = m_tTextTex;
texData.box = motionBox; texData.box = motionBox;
g_pHyprRenderer->m_sRenderPass.add(makeShared<CTexPassElement>(texData)); g_pHyprRenderer->m_renderPass.add(makeShared<CTexPassElement>(texData));
} }
@@ -204,7 +204,7 @@ void CHyprEasyLabel::updateWindow(PHLWINDOW pWindow) {
void CHyprEasyLabel::damageEntire() { void CHyprEasyLabel::damageEntire() {
auto box = assignedBoxGlobal(); auto box = assignedBoxGlobal();
box.translate(m_pWindow->m_vFloatingOffset); box.translate(m_pWindow->m_floatingOffset);
g_pHyprRenderer->damageBox(box); g_pHyprRenderer->damageBox(box);
} }
@@ -221,15 +221,15 @@ CBox CHyprEasyLabel::assignedBoxGlobal() {
const auto PWINDOW = m_pWindow.lock(); const auto PWINDOW = m_pWindow.lock();
double boxHeight, boxWidth; double boxHeight, boxWidth;
double boxSize; double boxSize;
boxHeight = PWINDOW->m_vRealSize->value().y * 0.10; boxHeight = PWINDOW->m_realSize->value().y * 0.10;
boxWidth = PWINDOW->m_vRealSize->value().x * 0.10; boxWidth = PWINDOW->m_realSize->value().x * 0.10;
boxSize = std::min(boxHeight, boxWidth); boxSize = std::min(boxHeight, boxWidth);
double boxX = PWINDOW->m_vRealPosition->value().x + (PWINDOW->m_vRealSize->value().x-boxSize)/2; double boxX = PWINDOW->m_realPosition->value().x + (PWINDOW->m_realSize->value().x-boxSize)/2;
double boxY = PWINDOW->m_vRealPosition->value().y + (PWINDOW->m_vRealSize->value().y-boxSize)/2; double boxY = PWINDOW->m_realPosition->value().y + (PWINDOW->m_realSize->value().y-boxSize)/2;
CBox box = {boxX, boxY, boxSize, boxSize}; CBox box = {boxX, boxY, boxSize, boxSize};
const auto PWORKSPACE = PWINDOW->m_pWorkspace; const auto PWORKSPACE = PWINDOW->m_workspace;
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D(); const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_pinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
return box.translate(WORKSPACEOFFSET); return box.translate(WORKSPACEOFFSET);
} }

View File

@@ -23,7 +23,7 @@ APICALL EXPORT std::string PLUGIN_API_VERSION() {
SDispatchResult easymotionExitDispatch(std::string args) SDispatchResult easymotionExitDispatch(std::string args)
{ {
for (auto &ml : g_pGlobalState->motionLabels | std::ranges::views::reverse) { for (auto &ml : g_pGlobalState->motionLabels | std::ranges::views::reverse) {
if (ml->m_origFSMode != ml->getOwner()->m_sFullscreenState.internal) if (ml->m_origFSMode != ml->getOwner()->m_fullscreenState.internal)
g_pCompositor->setWindowFullscreenInternal(ml->getOwner(), ml->m_origFSMode); g_pCompositor->setWindowFullscreenInternal(ml->getOwner(), ml->m_origFSMode);
ml->getOwner()->removeWindowDeco(ml.get()); ml->getOwner()->removeWindowDeco(ml.get());
} }
@@ -38,7 +38,7 @@ SDispatchResult easymotionActionDispatch(std::string args)
for (auto &ml : g_pGlobalState->motionLabels) { for (auto &ml : g_pGlobalState->motionLabels) {
if (ml->m_szLabel == args) { if (ml->m_szLabel == args) {
g_pEventManager->postEvent(SHyprIPCEvent{"easymotionselect", std::format("{},{}", ml->m_szWindowAddress, ml->m_szLabel)}); g_pEventManager->postEvent(SHyprIPCEvent{"easymotionselect", std::format("{},{}", ml->m_szWindowAddress, ml->m_szLabel)});
g_pKeybindManager->m_mDispatchers["exec"](ml->m_szActionCmd); g_pKeybindManager->m_dispatchers["exec"](ml->m_szActionCmd);
easymotionExitDispatch(""); easymotionExitDispatch("");
break; break;
} }
@@ -63,8 +63,8 @@ void addLabelToWindow(PHLWINDOW window, SMotionActionDesc *actionDesc, std::stri
motionlabel->m_szLabel = label; motionlabel->m_szLabel = label;
g_pGlobalState->motionLabels.emplace_back(motionlabel); g_pGlobalState->motionLabels.emplace_back(motionlabel);
motionlabel->m_self = motionlabel; motionlabel->m_self = motionlabel;
motionlabel->draw(window->m_pMonitor.lock(), 1.0); motionlabel->draw(window->m_monitor.lock(), 1.0);
motionlabel->m_origFSMode = window->m_sFullscreenState.internal; motionlabel->m_origFSMode = window->m_fullscreenState.internal;
if ((motionlabel->m_origFSMode != eFullscreenMode::FSMODE_NONE) && (actionDesc->fullscreen_action != "none")) if ((motionlabel->m_origFSMode != eFullscreenMode::FSMODE_NONE) && (actionDesc->fullscreen_action != "none"))
{ {
if (actionDesc->fullscreen_action == "maximize") if (actionDesc->fullscreen_action == "maximize")
@@ -213,8 +213,8 @@ SDispatchResult easymotionDispatch(std::string args)
std::transform(actionDesc.fullscreen_action.begin(), actionDesc.fullscreen_action.end(), actionDesc.fullscreen_action.begin(), tolower); std::transform(actionDesc.fullscreen_action.begin(), actionDesc.fullscreen_action.end(), actionDesc.fullscreen_action.begin(), tolower);
int key_idx = 0; int key_idx = 0;
for (auto &w : g_pCompositor->m_vWindows) { for (auto &w : g_pCompositor->m_windows) {
for (auto &m : g_pCompositor->m_vMonitors) { for (auto &m : g_pCompositor->m_monitors) {
if (w->m_pWorkspace == m->activeWorkspace || m->activeSpecialWorkspace == w->m_pWorkspace) { if (w->m_pWorkspace == m->activeWorkspace || m->activeSpecialWorkspace == w->m_pWorkspace) {
if (w->isHidden() || !w->m_bIsMapped || w->m_bFadingOut) if (w->isHidden() || !w->m_bIsMapped || w->m_bFadingOut)
continue; continue;
@@ -245,7 +245,7 @@ bool oneasymotionKeypress(void *self, std::any data) {
const auto KEYCODE = ev.keycode + 8; const auto KEYCODE = ev.keycode + 8;
const xkb_keysym_t KEYSYM = xkb_state_key_get_one_sym(keyboard->xkbState, KEYCODE); const xkb_keysym_t KEYSYM = xkb_state_key_get_one_sym(keyboard->m_xkbState, KEYCODE);
if (ev.state != WL_KEYBOARD_KEY_STATE_PRESSED) return false; if (ev.state != WL_KEYBOARD_KEY_STATE_PRESSED) return false;