mirror of
https://github.com/hyprwm/Hyprland
synced 2025-12-20 04:10:04 +01:00
ci: correct tar command for xz compression & fix typos (#11213)
This commit is contained in:
parent
fd0c1f2ab4
commit
5c8d675eed
45 changed files with 85 additions and 85 deletions
2
.github/workflows/ci.yaml
vendored
2
.github/workflows/ci.yaml
vendored
|
|
@ -36,7 +36,7 @@ jobs:
|
||||||
cp build/Hyprland hyprland/
|
cp build/Hyprland hyprland/
|
||||||
cp -r example/ hyprland/
|
cp -r example/ hyprland/
|
||||||
cp -r assets/ hyprland/
|
cp -r assets/ hyprland/
|
||||||
tar -cvf Hyprland.tar.xz hyprland
|
tar -cvJf Hyprland.tar.xz hyprland
|
||||||
|
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
homeManagerModules.default = import ./nix/hm-module.nix self;
|
homeManagerModules.default = import ./nix/hm-module.nix self;
|
||||||
|
|
||||||
# Hydra build jobs
|
# Hydra build jobs
|
||||||
# Recent versions of Hydra can aggregate jobsets from 'hydraJobs' intead of a release.nix
|
# Recent versions of Hydra can aggregate jobsets from 'hydraJobs' instead of a release.nix
|
||||||
# or similar. Remember to filter large or incompatible attributes here. More eval jobs can
|
# or similar. Remember to filter large or incompatible attributes here. More eval jobs can
|
||||||
# be added by merging, e.g., self.packages // self.devShells.
|
# be added by merging, e.g., self.packages // self.devShells.
|
||||||
hydraJobs = self.packages;
|
hydraJobs = self.packages;
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ function _hyprctl
|
||||||
set descriptions[22] "Focus the urgent window or the last window"
|
set descriptions[22] "Focus the urgent window or the last window"
|
||||||
set descriptions[23] "Get the list of defined workspace rules"
|
set descriptions[23] "Get the list of defined workspace rules"
|
||||||
set descriptions[24] "Move the active workspace to a monitor"
|
set descriptions[24] "Move the active workspace to a monitor"
|
||||||
set descriptions[25] "Move window doesnt switch to the workspace"
|
set descriptions[25] "Move window doesn't switch to the workspace"
|
||||||
set descriptions[26] "Interact with hyprpaper if present"
|
set descriptions[26] "Interact with hyprpaper if present"
|
||||||
set descriptions[29] "Swap the active window with the next or previous in a group"
|
set descriptions[29] "Swap the active window with the next or previous in a group"
|
||||||
set descriptions[30] "Move the cursor to the corner of the active window"
|
set descriptions[30] "Move the cursor to the corner of the active window"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# This is a file feeded to complgen to generate bash/fish/zsh completions
|
# This is a file fed to complgen to generate bash/fish/zsh completions
|
||||||
# Repo: https://github.com/adaszko/complgen
|
# Repo: https://github.com/adaszko/complgen
|
||||||
# Generate completion scripts: "complgen aot --bash-script hyprctl.bash --fish-script hyprctl.fish --zsh-script hyprctl.zsh ./hyprctl.usage"
|
# Generate completion scripts: "complgen aot --bash-script hyprctl.bash --fish-script hyprctl.fish --zsh-script hyprctl.zsh ./hyprctl.usage"
|
||||||
|
|
||||||
|
|
@ -111,7 +111,7 @@ hyprctl [<OPTIONS>]... <ARGUMENTS>
|
||||||
| (closewindow) "Close a specified window"
|
| (closewindow) "Close a specified window"
|
||||||
| (workspace) "Change the workspace"
|
| (workspace) "Change the workspace"
|
||||||
| (movetoworkspace) "Move the focused window to a workspace"
|
| (movetoworkspace) "Move the focused window to a workspace"
|
||||||
| (movetoworkspacesilent) "Move window doesnt switch to the workspace"
|
| (movetoworkspacesilent) "Move window doesn't switch to the workspace"
|
||||||
| (togglefloating) "Toggle the current window's floating state"
|
| (togglefloating) "Toggle the current window's floating state"
|
||||||
| (setfloating) "Set the current window's floating state to true"
|
| (setfloating) "Set the current window's floating state to true"
|
||||||
| (settiled) "Set the current window's floating state to false"
|
| (settiled) "Set the current window's floating state to false"
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ _hyprctl () {
|
||||||
descriptions[22]="Focus the urgent window or the last window"
|
descriptions[22]="Focus the urgent window or the last window"
|
||||||
descriptions[23]="Get the list of defined workspace rules"
|
descriptions[23]="Get the list of defined workspace rules"
|
||||||
descriptions[24]="Move the active workspace to a monitor"
|
descriptions[24]="Move the active workspace to a monitor"
|
||||||
descriptions[25]="Move window doesnt switch to the workspace"
|
descriptions[25]="Move window doesn't switch to the workspace"
|
||||||
descriptions[26]="Interact with hyprpaper if present"
|
descriptions[26]="Interact with hyprpaper if present"
|
||||||
descriptions[29]="Swap the active window with the next or previous in a group"
|
descriptions[29]="Swap the active window with the next or previous in a group"
|
||||||
descriptions[30]="Move the cursor to the corner of the active window"
|
descriptions[30]="Move the cursor to the corner of the active window"
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ function _hyprpm
|
||||||
set descriptions[6] "Show help menu"
|
set descriptions[6] "Show help menu"
|
||||||
set descriptions[7] "Check and update all plugins if needed"
|
set descriptions[7] "Check and update all plugins if needed"
|
||||||
set descriptions[8] "Install a new plugin repository from git"
|
set descriptions[8] "Install a new plugin repository from git"
|
||||||
set descriptions[9] "Enable too much loggin"
|
set descriptions[9] "Enable too much logging"
|
||||||
set descriptions[10] "Enable too much loggin"
|
set descriptions[10] "Enable too much logging"
|
||||||
set descriptions[11] "Force an operation ignoring checks (e.g. update -f)"
|
set descriptions[11] "Force an operation ignoring checks (e.g. update -f)"
|
||||||
set descriptions[12] "Disable shallow cloning of Hyprland sources"
|
set descriptions[12] "Disable shallow cloning of Hyprland sources"
|
||||||
set descriptions[13] "Remove a plugin repository"
|
set descriptions[13] "Remove a plugin repository"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ hyprpm [<FLAGS>]... <ARGUMENT>
|
||||||
|
|
||||||
<FLAGS> ::= (--notify | -n) "Send a hyprland notification for important events (e.g. load fail)"
|
<FLAGS> ::= (--notify | -n) "Send a hyprland notification for important events (e.g. load fail)"
|
||||||
| (--help | -h) "Show help menu"
|
| (--help | -h) "Show help menu"
|
||||||
| (--verbose | -v) "Enable too much loggin"
|
| (--verbose | -v) "Enable too much logging"
|
||||||
| (--force | -f) "Force an operation ignoring checks (e.g. update -f)"
|
| (--force | -f) "Force an operation ignoring checks (e.g. update -f)"
|
||||||
| (--no-shallow | -s) "Disable shallow cloning of Hyprland sources"
|
| (--no-shallow | -s) "Disable shallow cloning of Hyprland sources"
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ _hyprpm () {
|
||||||
descriptions[6]="Show help menu"
|
descriptions[6]="Show help menu"
|
||||||
descriptions[7]="Check and update all plugins if needed"
|
descriptions[7]="Check and update all plugins if needed"
|
||||||
descriptions[8]="Install a new plugin repository from git"
|
descriptions[8]="Install a new plugin repository from git"
|
||||||
descriptions[9]="Enable too much loggin"
|
descriptions[9]="Enable too much logging"
|
||||||
descriptions[10]="Enable too much loggin"
|
descriptions[10]="Enable too much logging"
|
||||||
descriptions[11]="Force an operation ignoring checks (e.g. update -f)"
|
descriptions[11]="Force an operation ignoring checks (e.g. update -f)"
|
||||||
descriptions[12]="Disable shallow cloning of Hyprland sources"
|
descriptions[12]="Disable shallow cloning of Hyprland sources"
|
||||||
descriptions[13]="Remove a plugin repository"
|
descriptions[13]="Remove a plugin repository"
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,7 @@ bool CPluginManager::addNewPluginRepo(const std::string& url, const std::string&
|
||||||
auto GLOBALSTATE = DataState::getGlobalState();
|
auto GLOBALSTATE = DataState::getGlobalState();
|
||||||
if (!GLOBALSTATE.dontWarnInstall) {
|
if (!GLOBALSTATE.dontWarnInstall) {
|
||||||
std::println("{}!{} Disclaimer: {}", Colors::YELLOW, Colors::RED, Colors::RESET);
|
std::println("{}!{} Disclaimer: {}", Colors::YELLOW, Colors::RED, Colors::RESET);
|
||||||
std::println("plugins, especially not official, have no guarantee of stability, availablity or security.\n"
|
std::println("plugins, especially not official, have no guarantee of stability, availability or security.\n"
|
||||||
"Run them at your own risk.\n"
|
"Run them at your own risk.\n"
|
||||||
"This message will not appear again.");
|
"This message will not appear again.");
|
||||||
GLOBALSTATE.dontWarnInstall = true;
|
GLOBALSTATE.dontWarnInstall = true;
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ static bool test() {
|
||||||
EXPECT_CONTAINS(str, "special:HELLO");
|
EXPECT_CONTAINS(str, "special:HELLO");
|
||||||
}
|
}
|
||||||
|
|
||||||
// no OK: will err (it shouldnt prolly but oh well)
|
// no OK: will err (it shouldn't prolly but oh well)
|
||||||
getFromSocket("/dispatch workspace 3");
|
getFromSocket("/dispatch workspace 3");
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1234,7 +1234,7 @@ void CCompositor::focusSurface(SP<CWLSurfaceResource> pSurface, PHLWINDOW pWindo
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (g_pSeatManager->m_seatGrab && !g_pSeatManager->m_seatGrab->accepts(pSurface)) {
|
if (g_pSeatManager->m_seatGrab && !g_pSeatManager->m_seatGrab->accepts(pSurface)) {
|
||||||
Debug::log(LOG, "surface {:x} won't receive kb focus becuase grab rejected it", (uintptr_t)pSurface.get());
|
Debug::log(LOG, "surface {:x} won't receive kb focus because grab rejected it", (uintptr_t)pSurface.get());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2861,7 +2861,7 @@ void CCompositor::arrangeMonitors() {
|
||||||
maxYOffsetUp = 0;
|
maxYOffsetUp = 0;
|
||||||
maxYOffsetDown = 0;
|
maxYOffsetDown = 0;
|
||||||
|
|
||||||
// Finds the max and min values of explicitely placed monitors.
|
// Finds the max and min values of explicitly placed monitors.
|
||||||
for (auto const& m : arranged) {
|
for (auto const& m : arranged) {
|
||||||
maxXOffsetRight = std::max<double>(m->m_position.x + m->m_size.x, maxXOffsetRight);
|
maxXOffsetRight = std::max<double>(m->m_position.x + m->m_size.x, maxXOffsetRight);
|
||||||
maxXOffsetLeft = std::min<double>(m->m_position.x, maxXOffsetLeft);
|
maxXOffsetLeft = std::min<double>(m->m_position.x, maxXOffsetLeft);
|
||||||
|
|
@ -3031,7 +3031,7 @@ static void checkDefaultCursorWarp(PHLMONITOR monitor) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// modechange happend check if cursor is on that monitor and warp it to middle to not place it out of bounds if resolution changed.
|
// modechange happened check if cursor is on that monitor and warp it to middle to not place it out of bounds if resolution changed.
|
||||||
if (g_pCompositor->getMonitorFromCursor() == monitor) {
|
if (g_pCompositor->getMonitorFromCursor() == monitor) {
|
||||||
g_pCompositor->warpCursorTo(POS, true);
|
g_pCompositor->warpCursorTo(POS, true);
|
||||||
g_pInputManager->refocus();
|
g_pInputManager->refocus();
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
||||||
},
|
},
|
||||||
SConfigOptionDescription{
|
SConfigOptionDescription{
|
||||||
.value = "decoration:rounding_power",
|
.value = "decoration:rounding_power",
|
||||||
.description = "rouding power of corners (2 is a circle)",
|
.description = "rounding power of corners (2 is a circle)",
|
||||||
.type = CONFIG_OPTION_FLOAT,
|
.type = CONFIG_OPTION_FLOAT,
|
||||||
.data = SConfigOptionDescription::SFloatData{2, 2, 10},
|
.data = SConfigOptionDescription::SFloatData{2, 2, 10},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1804,7 +1804,7 @@ void CWindow::deactivateGroupMembers() {
|
||||||
auto curr = getGroupHead();
|
auto curr = getGroupHead();
|
||||||
while (curr) {
|
while (curr) {
|
||||||
if (curr != m_self.lock()) {
|
if (curr != m_self.lock()) {
|
||||||
// we dont want to deactivate unfocused xwayland windows
|
// we don't want to deactivate unfocused xwayland windows
|
||||||
// because X is weird, keep the behavior for wayland windows
|
// because X is weird, keep the behavior for wayland windows
|
||||||
// also its not really needed for xwayland windows
|
// also its not really needed for xwayland windows
|
||||||
// ref: #9760 #9294
|
// ref: #9760 #9294
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ void Events::listener_mapWindow(void* owner, void* data) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CWindowRule::RULE_WORKSPACE: {
|
case CWindowRule::RULE_WORKSPACE: {
|
||||||
// check if it isnt unset
|
// check if it isn't unset
|
||||||
const auto WORKSPACERQ = r->m_rule.substr(r->m_rule.find_first_of(' ') + 1);
|
const auto WORKSPACERQ = r->m_rule.substr(r->m_rule.find_first_of(' ') + 1);
|
||||||
|
|
||||||
if (WORKSPACERQ == "unset")
|
if (WORKSPACERQ == "unset")
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ void CAsyncDialogBox::onWrite(int fd, uint32_t mask) {
|
||||||
m_stdout += std::string_view{(char*)buf.data(), (size_t)ret};
|
m_stdout += std::string_view{(char*)buf.data(), (size_t)ret};
|
||||||
}
|
}
|
||||||
|
|
||||||
// restore the flags (otherwise libwayland wont give us a hangup)
|
// restore the flags (otherwise libwayland won't give us a hangup)
|
||||||
if (fcntl(fd, F_SETFL, fdFlags) < 0) {
|
if (fcntl(fd, F_SETFL, fdFlags) < 0) {
|
||||||
Debug::log(ERR, "CAsyncDialogBox::onWrite: fcntl 2 failed!");
|
Debug::log(ERR, "CAsyncDialogBox::onWrite: fcntl 2 failed!");
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -237,7 +237,7 @@ void CMonitor::onConnect(bool noRule) {
|
||||||
if (!m_activeMonitorRule.mirrorOf.empty())
|
if (!m_activeMonitorRule.mirrorOf.empty())
|
||||||
setMirror(m_activeMonitorRule.mirrorOf);
|
setMirror(m_activeMonitorRule.mirrorOf);
|
||||||
|
|
||||||
if (!g_pCompositor->m_lastMonitor) // set the last monitor if it isnt set yet
|
if (!g_pCompositor->m_lastMonitor) // set the last monitor if it isn't set yet
|
||||||
g_pCompositor->setActiveMonitor(m_self.lock());
|
g_pCompositor->setActiveMonitor(m_self.lock());
|
||||||
|
|
||||||
g_pHyprRenderer->arrangeLayersForMonitor(m_id);
|
g_pHyprRenderer->arrangeLayersForMonitor(m_id);
|
||||||
|
|
@ -512,7 +512,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
|
||||||
&& m_autoDir == RULE->autoDir /* Auto direction is the same */
|
&& m_autoDir == RULE->autoDir /* Auto direction is the same */
|
||||||
/* position is set correctly */
|
/* position is set correctly */
|
||||||
&& ((DELTALESSTHAN(m_position.x, RULE->offset.x, 1) && DELTALESSTHAN(m_position.y, RULE->offset.y, 1)) || RULE->offset == Vector2D(-INT32_MAX, -INT32_MAX))
|
&& ((DELTALESSTHAN(m_position.x, RULE->offset.x, 1) && DELTALESSTHAN(m_position.y, RULE->offset.y, 1)) || RULE->offset == Vector2D(-INT32_MAX, -INT32_MAX))
|
||||||
/* other properties hadnt changed */
|
/* other properties hadn't changed */
|
||||||
&& m_transform == RULE->transform && RULE->enable10bit == m_enabled10bit && RULE->cmType == m_cmType && RULE->sdrSaturation == m_sdrSaturation &&
|
&& m_transform == RULE->transform && RULE->enable10bit == m_enabled10bit && RULE->cmType == m_cmType && RULE->sdrSaturation == m_sdrSaturation &&
|
||||||
RULE->sdrBrightness == m_sdrBrightness && RULE->sdrMinLuminance == m_minLuminance && RULE->sdrMaxLuminance == m_maxLuminance &&
|
RULE->sdrBrightness == m_sdrBrightness && RULE->sdrMinLuminance == m_minLuminance && RULE->sdrMaxLuminance == m_maxLuminance &&
|
||||||
RULE->supportsWideColor == m_supportsWideColor && RULE->supportsHDR == m_supportsHDR && RULE->minLuminance == m_minLuminance && RULE->maxLuminance == m_maxLuminance &&
|
RULE->supportsWideColor == m_supportsWideColor && RULE->supportsHDR == m_supportsHDR && RULE->minLuminance == m_minLuminance && RULE->maxLuminance == m_maxLuminance &&
|
||||||
|
|
@ -618,7 +618,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// if the best mode isnt close to requested, then try requested as custom mode first
|
// if the best mode isn't close to requested, then try requested as custom mode first
|
||||||
if (!requestedModes.empty()) {
|
if (!requestedModes.empty()) {
|
||||||
auto bestMode = requestedModes.back();
|
auto bestMode = requestedModes.back();
|
||||||
if (!DELTALESSTHAN(bestMode->pixelSize.x, RULE->resolution.x, 1) || !DELTALESSTHAN(bestMode->pixelSize.y, RULE->resolution.y, 1) ||
|
if (!DELTALESSTHAN(bestMode->pixelSize.x, RULE->resolution.x, 1) || !DELTALESSTHAN(bestMode->pixelSize.y, RULE->resolution.y, 1) ||
|
||||||
|
|
@ -1329,7 +1329,7 @@ void CMonitor::setSpecialWorkspace(const PHLWORKSPACE& pWorkspace) {
|
||||||
|
|
||||||
const auto MIDDLE = w->middle();
|
const auto MIDDLE = w->middle();
|
||||||
if (w->m_isFloating && VECNOTINRECT(MIDDLE, m_position.x, m_position.y, m_position.x + m_size.x, m_position.y + m_size.y) && !w->isX11OverrideRedirect()) {
|
if (w->m_isFloating && VECNOTINRECT(MIDDLE, m_position.x, m_position.y, m_position.x + m_size.x, m_position.y + m_size.y) && !w->isX11OverrideRedirect()) {
|
||||||
// if it's floating and the middle isnt on the current mon, move it to the center
|
// if it's floating and the middle isn't on the current mon, move it to the center
|
||||||
const auto PMONFROMMIDDLE = g_pCompositor->getMonitorFromVector(MIDDLE);
|
const auto PMONFROMMIDDLE = g_pCompositor->getMonitorFromVector(MIDDLE);
|
||||||
Vector2D pos = w->m_realPosition->goal();
|
Vector2D pos = w->m_realPosition->goal();
|
||||||
if (VECNOTINRECT(MIDDLE, PMONFROMMIDDLE->m_position.x, PMONFROMMIDDLE->m_position.y, PMONFROMMIDDLE->m_position.x + PMONFROMMIDDLE->m_size.x,
|
if (VECNOTINRECT(MIDDLE, PMONFROMMIDDLE->m_position.x, PMONFROMMIDDLE->m_position.y, PMONFROMMIDDLE->m_position.x + PMONFROMMIDDLE->m_size.x,
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode, bool for
|
||||||
// Calculate pseudo
|
// Calculate pseudo
|
||||||
float scale = 1;
|
float scale = 1;
|
||||||
|
|
||||||
// adjust if doesnt fit
|
// adjust if doesn't fit
|
||||||
if (PWINDOW->m_pseudoSize.x > calcSize.x || PWINDOW->m_pseudoSize.y > calcSize.y) {
|
if (PWINDOW->m_pseudoSize.x > calcSize.x || PWINDOW->m_pseudoSize.y > calcSize.y) {
|
||||||
if (PWINDOW->m_pseudoSize.x > calcSize.x) {
|
if (PWINDOW->m_pseudoSize.x > calcSize.x) {
|
||||||
scale = calcSize.x / PWINDOW->m_pseudoSize.x;
|
scale = calcSize.x / PWINDOW->m_pseudoSize.x;
|
||||||
|
|
|
||||||
|
|
@ -932,7 +932,7 @@ SWindowRenderLayoutHints CHyprMasterLayout::requestRenderHints(PHLWINDOW pWindow
|
||||||
|
|
||||||
SWindowRenderLayoutHints hints;
|
SWindowRenderLayoutHints hints;
|
||||||
|
|
||||||
return hints; // master doesnt have any hints
|
return hints; // master doesn't have any hints
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprMasterLayout::moveWindowTo(PHLWINDOW pWindow, const std::string& dir, bool silent) {
|
void CHyprMasterLayout::moveWindowTo(PHLWINDOW pWindow, const std::string& dir, bool silent) {
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ static void handleUpdate(CAnimatedVariable<VarType>& av, bool warp) {
|
||||||
if (!PMONITOR)
|
if (!PMONITOR)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// dont damage the whole monitor on workspace change, unless it's a special workspace, because dim/blur etc
|
// don't damage the whole monitor on workspace change, unless it's a special workspace, because dim/blur etc
|
||||||
if (PWORKSPACE->m_isSpecialWorkspace)
|
if (PWORKSPACE->m_isSpecialWorkspace)
|
||||||
g_pHyprRenderer->damageMonitor(PMONITOR);
|
g_pHyprRenderer->damageMonitor(PMONITOR);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2013,8 +2013,8 @@ SDispatchResult CKeybindManager::moveCurrentWorkspaceToMonitor(std::string args)
|
||||||
PHLMONITOR PMONITOR = g_pCompositor->getMonitorFromString(args);
|
PHLMONITOR PMONITOR = g_pCompositor->getMonitorFromString(args);
|
||||||
|
|
||||||
if (!PMONITOR) {
|
if (!PMONITOR) {
|
||||||
Debug::log(ERR, "Ignoring moveCurrentWorkspaceToMonitor: monitor doesnt exist");
|
Debug::log(ERR, "Ignoring moveCurrentWorkspaceToMonitor: monitor doesn't exist");
|
||||||
return {.success = false, .error = "Ignoring moveCurrentWorkspaceToMonitor: monitor doesnt exist"};
|
return {.success = false, .error = "Ignoring moveCurrentWorkspaceToMonitor: monitor doesn't exist"};
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the current workspace
|
// get the current workspace
|
||||||
|
|
@ -2039,8 +2039,8 @@ SDispatchResult CKeybindManager::moveWorkspaceToMonitor(std::string args) {
|
||||||
const auto PMONITOR = g_pCompositor->getMonitorFromString(monitor);
|
const auto PMONITOR = g_pCompositor->getMonitorFromString(monitor);
|
||||||
|
|
||||||
if (!PMONITOR) {
|
if (!PMONITOR) {
|
||||||
Debug::log(ERR, "Ignoring moveWorkspaceToMonitor: monitor doesnt exist");
|
Debug::log(ERR, "Ignoring moveWorkspaceToMonitor: monitor doesn't exist");
|
||||||
return {.success = false, .error = "Ignoring moveWorkspaceToMonitor: monitor doesnt exist"};
|
return {.success = false, .error = "Ignoring moveWorkspaceToMonitor: monitor doesn't exist"};
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto WORKSPACEID = getWorkspaceIDNameFromString(workspace).id;
|
const auto WORKSPACEID = getWorkspaceIDNameFromString(workspace).id;
|
||||||
|
|
@ -2582,7 +2582,7 @@ SDispatchResult CKeybindManager::sendshortcut(std::string args) {
|
||||||
const auto LASTSURFACE = g_pCompositor->m_lastFocus.lock();
|
const auto LASTSURFACE = g_pCompositor->m_lastFocus.lock();
|
||||||
|
|
||||||
//if regexp is not empty, send shortcut to current window
|
//if regexp is not empty, send shortcut to current window
|
||||||
//else, dont change focus
|
//else, don't change focus
|
||||||
if (!regexp.empty()) {
|
if (!regexp.empty()) {
|
||||||
PWINDOW = g_pCompositor->getWindowByRegex(regexp);
|
PWINDOW = g_pCompositor->getWindowByRegex(regexp);
|
||||||
|
|
||||||
|
|
@ -2924,7 +2924,7 @@ void CKeybindManager::moveWindowIntoGroup(PHLWINDOW pWindow, PHLWINDOW pWindowIn
|
||||||
|
|
||||||
updateRelativeCursorCoords();
|
updateRelativeCursorCoords();
|
||||||
|
|
||||||
g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow); // This removes groupped property!
|
g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow); // This removes grouped property!
|
||||||
|
|
||||||
if (pWindow->m_monitor != pWindowInDirection->m_monitor) {
|
if (pWindow->m_monitor != pWindowInDirection->m_monitor) {
|
||||||
pWindow->moveToWorkspace(pWindowInDirection->m_workspace);
|
pWindow->moveToWorkspace(pWindowInDirection->m_workspace);
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ class CKeybindManager {
|
||||||
|
|
||||||
std::vector<SP<SKeybind>> m_keybinds;
|
std::vector<SP<SKeybind>> m_keybinds;
|
||||||
|
|
||||||
//since we cant find keycode through keyname in xkb:
|
//since we can't find keycode through keyname in xkb:
|
||||||
//on sendshortcut call, we once search for keyname (e.g. "g") the correct keycode (e.g. 42)
|
//on sendshortcut call, we once search for keyname (e.g. "g") the correct keycode (e.g. 42)
|
||||||
//and cache it in this map to make sendshortcut calls faster
|
//and cache it in this map to make sendshortcut calls faster
|
||||||
//we also store the keyboard pointer (in the string) to differentiate between different keyboard (layouts)
|
//we also store the keyboard pointer (in the string) to differentiate between different keyboard (layouts)
|
||||||
|
|
|
||||||
|
|
@ -527,7 +527,7 @@ SP<Aquamarine::IBuffer> CPointerManager::renderHWCursorBuffer(SP<CPointerManager
|
||||||
if (TR) {
|
if (TR) {
|
||||||
cairo_matrix_rotate(&matrixPre, M_PI_2 * (double)TR);
|
cairo_matrix_rotate(&matrixPre, M_PI_2 * (double)TR);
|
||||||
|
|
||||||
// FIXME: this is wrong, and doesnt work for 5, 6 and 7. (flipped + rot)
|
// FIXME: this is wrong, and doesn't work for 5, 6 and 7. (flipped + rot)
|
||||||
// cba to do it rn, does anyone fucking use that??
|
// cba to do it rn, does anyone fucking use that??
|
||||||
if (TR >= WL_OUTPUT_TRANSFORM_FLIPPED) {
|
if (TR >= WL_OUTPUT_TRANSFORM_FLIPPED) {
|
||||||
cairo_matrix_scale(&matrixPre, -1, 1);
|
cairo_matrix_scale(&matrixPre, -1, 1);
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ void CSessionLockManager::onNewSessionLock(SP<CSessionLock> pLock) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (g_pCompositor->m_unsafeState || !g_pCompositor->m_aqBackend->hasSession() || !g_pCompositor->m_aqBackend->session->active) {
|
if (g_pCompositor->m_unsafeState || !g_pCompositor->m_aqBackend->hasSession() || !g_pCompositor->m_aqBackend->session->active) {
|
||||||
// Because the session is inactive, there is a good reason for why the client did't recieve locked or denied.
|
// Because the session is inactive, there is a good reason for why the client did't receive locked or denied.
|
||||||
// We send locked, although this could lead to imperfect frames when we start to render again.
|
// We send locked, although this could lead to imperfect frames when we start to render again.
|
||||||
g_pSessionLockManager->m_sessionLock->lock->sendLocked();
|
g_pSessionLockManager->m_sessionLock->lock->sendLocked();
|
||||||
g_pSessionLockManager->m_sessionLock->hasSentLocked = true;
|
g_pSessionLockManager->m_sessionLock->hasSentLocked = true;
|
||||||
|
|
|
||||||
|
|
@ -574,7 +574,7 @@ void CXCursorManager::syncGsettings() {
|
||||||
auto* gSettingsSchemaSource = g_settings_schema_source_get_default();
|
auto* gSettingsSchemaSource = g_settings_schema_source_get_default();
|
||||||
|
|
||||||
if (!gSettingsSchemaSource) {
|
if (!gSettingsSchemaSource) {
|
||||||
Debug::log(WARN, "GSettings default schema source does not exist, cant sync GSettings");
|
Debug::log(WARN, "GSettings default schema source does not exist, can't sync GSettings");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -592,7 +592,7 @@ void CXCursorManager::syncGsettings() {
|
||||||
using SettingValue = std::variant<std::string, int>;
|
using SettingValue = std::variant<std::string, int>;
|
||||||
auto setValue = [&checkParamExists](std::string const& paramName, const SettingValue& paramValue, std::string const& category) {
|
auto setValue = [&checkParamExists](std::string const& paramName, const SettingValue& paramValue, std::string const& category) {
|
||||||
if (!checkParamExists(paramName, category)) {
|
if (!checkParamExists(paramName, category)) {
|
||||||
Debug::log(WARN, "GSettings parameter doesnt exist {} in {}", paramName, category);
|
Debug::log(WARN, "GSettings parameter doesn't exist {} in {}", paramName, category);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -361,7 +361,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) {
|
||||||
if (!foundSurface)
|
if (!foundSurface)
|
||||||
foundSurface = g_pCompositor->vectorToLayerSurface(mouseCoords, &PMONITOR->m_layerSurfaceLayers[ZWLR_LAYER_SHELL_V1_LAYER_TOP], &surfaceCoords, &pFoundLayerSurface);
|
foundSurface = g_pCompositor->vectorToLayerSurface(mouseCoords, &PMONITOR->m_layerSurfaceLayers[ZWLR_LAYER_SHELL_V1_LAYER_TOP], &surfaceCoords, &pFoundLayerSurface);
|
||||||
|
|
||||||
// then, we check if the workspace doesnt have a fullscreen window
|
// then, we check if the workspace doesn't have a fullscreen window
|
||||||
const auto PWORKSPACE = PMONITOR->m_activeSpecialWorkspace ? PMONITOR->m_activeSpecialWorkspace : PMONITOR->m_activeWorkspace;
|
const auto PWORKSPACE = PMONITOR->m_activeSpecialWorkspace ? PMONITOR->m_activeSpecialWorkspace : PMONITOR->m_activeWorkspace;
|
||||||
const auto PWINDOWIDEAL = g_pCompositor->vectorToWindowUnified(mouseCoords, RESERVED_EXTENTS | INPUT_EXTENTS | ALLOW_FLOATING);
|
const auto PWINDOWIDEAL = g_pCompositor->vectorToWindowUnified(mouseCoords, RESERVED_EXTENTS | INPUT_EXTENTS | ALLOW_FLOATING);
|
||||||
if (PWORKSPACE->m_hasFullscreenWindow && !foundSurface && PWORKSPACE->m_fullscreenMode == FSMODE_FULLSCREEN) {
|
if (PWORKSPACE->m_hasFullscreenWindow && !foundSurface && PWORKSPACE->m_fullscreenMode == FSMODE_FULLSCREEN) {
|
||||||
|
|
@ -796,7 +796,7 @@ void CInputManager::processMouseDownNormal(const IPointer::SButtonEvent& e) {
|
||||||
case WL_POINTER_BUTTON_STATE_RELEASED: break;
|
case WL_POINTER_BUTTON_STATE_RELEASED: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// notify app if we didnt handle it
|
// notify app if we didn't handle it
|
||||||
g_pSeatManager->sendPointerButton(e.timeMs, e.button, e.state);
|
g_pSeatManager->sendPointerButton(e.timeMs, e.button, e.state);
|
||||||
|
|
||||||
if (const auto PMON = g_pCompositor->getMonitorFromVector(mouseCoords); PMON != g_pCompositor->m_lastMonitor && PMON)
|
if (const auto PMON = g_pCompositor->getMonitorFromVector(mouseCoords); PMON != g_pCompositor->m_lastMonitor && PMON)
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ eDynamicPermissionAllowMode CDynamicPermissionManager::clientPermissionMode(wl_c
|
||||||
return PERMISSION_RULE_ALLOW_MODE_PENDING;
|
return PERMISSION_RULE_ALLOW_MODE_PENDING;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we are here, we need to ask, that's the fallback for all these (keyboards wont come here)
|
// if we are here, we need to ask, that's the fallback for all these (keyboards won't come here)
|
||||||
askForPermission(client, LOOKUP.value_or(""), permission);
|
askForPermission(client, LOOKUP.value_or(""), permission);
|
||||||
|
|
||||||
return PERMISSION_RULE_ALLOW_MODE_PENDING;
|
return PERMISSION_RULE_ALLOW_MODE_PENDING;
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,7 @@ wl_client* CColorManagementOutput::client() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CColorManagementSurface::CColorManagementSurface(SP<CWLSurfaceResource> surface_) : m_surface(surface_) {
|
CColorManagementSurface::CColorManagementSurface(SP<CWLSurfaceResource> surface_) : m_surface(surface_) {
|
||||||
// only for frog cm untill wayland cm is adopted
|
// only for frog cm until wayland cm is adopted
|
||||||
}
|
}
|
||||||
|
|
||||||
CColorManagementSurface::CColorManagementSurface(SP<CWpColorManagementSurfaceV1> resource, SP<CWLSurfaceResource> surface_) : m_surface(surface_), m_resource(resource) {
|
CColorManagementSurface::CColorManagementSurface(SP<CWpColorManagementSurfaceV1> resource, SP<CWLSurfaceResource> surface_) : m_surface(surface_), m_resource(resource) {
|
||||||
|
|
@ -766,7 +766,7 @@ CColorManagementImageDescriptionInfo::CColorManagementImageDescriptionInfo(SP<CW
|
||||||
m_resource->sendTfNamed(m_settings.transferFunction);
|
m_resource->sendTfNamed(m_settings.transferFunction);
|
||||||
m_resource->sendLuminances(std::round(m_settings.luminances.min * 10000), m_settings.luminances.max, m_settings.luminances.reference);
|
m_resource->sendLuminances(std::round(m_settings.luminances.min * 10000), m_settings.luminances.max, m_settings.luminances.reference);
|
||||||
|
|
||||||
// send expexted display paramateres
|
// send expected display paramateres
|
||||||
m_resource->sendTargetPrimaries(toProto(m_settings.masteringPrimaries.red.x), toProto(m_settings.masteringPrimaries.red.y), toProto(m_settings.masteringPrimaries.green.x),
|
m_resource->sendTargetPrimaries(toProto(m_settings.masteringPrimaries.red.x), toProto(m_settings.masteringPrimaries.red.y), toProto(m_settings.masteringPrimaries.green.x),
|
||||||
toProto(m_settings.masteringPrimaries.green.y), toProto(m_settings.masteringPrimaries.blue.x), toProto(m_settings.masteringPrimaries.blue.y),
|
toProto(m_settings.masteringPrimaries.green.y), toProto(m_settings.masteringPrimaries.blue.x), toProto(m_settings.masteringPrimaries.blue.y),
|
||||||
toProto(m_settings.masteringPrimaries.white.x), toProto(m_settings.masteringPrimaries.white.y));
|
toProto(m_settings.masteringPrimaries.white.x), toProto(m_settings.masteringPrimaries.white.y));
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ CDRMLeaseRequestResource::CDRMLeaseRequestResource(WP<CDRMLeaseDeviceResource> p
|
||||||
|
|
||||||
PROTO::lease.at(m_parent->m_deviceName)->m_leases.emplace_back(RESOURCE);
|
PROTO::lease.at(m_parent->m_deviceName)->m_leases.emplace_back(RESOURCE);
|
||||||
|
|
||||||
// per protcol, after submit, this is dead.
|
// per protocol, after submit, this is dead.
|
||||||
PROTO::lease.at(m_parent->m_deviceName)->destroyResource(this);
|
PROTO::lease.at(m_parent->m_deviceName)->destroyResource(this);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ bool CDRMSyncPointState::addWaiter(const std::function<void()>& waiter) {
|
||||||
return m_timeline->addWaiter(waiter, m_point, 0u);
|
return m_timeline->addWaiter(waiter, m_point, 0u);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CDRMSyncPointState::comitted() {
|
bool CDRMSyncPointState::committed() {
|
||||||
return m_acquireCommitted;
|
return m_acquireCommitted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class CDRMSyncPointState {
|
||||||
WP<CSyncTimeline> timeline();
|
WP<CSyncTimeline> timeline();
|
||||||
Hyprutils::Memory::CUniquePointer<CSyncReleaser> createSyncRelease();
|
Hyprutils::Memory::CUniquePointer<CSyncReleaser> createSyncRelease();
|
||||||
bool addWaiter(const std::function<void()>& waiter);
|
bool addWaiter(const std::function<void()>& waiter);
|
||||||
bool comitted();
|
bool committed();
|
||||||
Hyprutils::OS::CFileDescriptor exportAsFD();
|
Hyprutils::OS::CFileDescriptor exportAsFD();
|
||||||
void signal();
|
void signal();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,12 @@ bool CFocusGrab::good() {
|
||||||
return m_resource->resource();
|
return m_resource->resource();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CFocusGrab::isSurfaceComitted(SP<CWLSurfaceResource> surface) {
|
bool CFocusGrab::isSurfaceCommitted(SP<CWLSurfaceResource> surface) {
|
||||||
auto iter = std::ranges::find_if(m_surfaces, [surface](const auto& o) { return o.first == surface; });
|
auto iter = std::ranges::find_if(m_surfaces, [surface](const auto& o) { return o.first == surface; });
|
||||||
if (iter == m_surfaces.end())
|
if (iter == m_surfaces.end())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return iter->second->m_state == CFocusGrabSurfaceState::Comitted;
|
return iter->second->m_state == CFocusGrabSurfaceState::Committed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFocusGrab::start() {
|
void CFocusGrab::start() {
|
||||||
|
|
@ -49,7 +49,7 @@ void CFocusGrab::start() {
|
||||||
g_pSeatManager->setGrab(m_grab);
|
g_pSeatManager->setGrab(m_grab);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure new surfaces are focused if under the mouse when comitted.
|
// Ensure new surfaces are focused if under the mouse when committed.
|
||||||
g_pInputManager->simulateMouseMovement();
|
g_pInputManager->simulateMouseMovement();
|
||||||
refocusKeyboard();
|
refocusKeyboard();
|
||||||
}
|
}
|
||||||
|
|
@ -92,12 +92,12 @@ void CFocusGrab::eraseSurface(SP<CWLSurfaceResource> surface) {
|
||||||
|
|
||||||
void CFocusGrab::refocusKeyboard() {
|
void CFocusGrab::refocusKeyboard() {
|
||||||
auto keyboardSurface = g_pSeatManager->m_state.keyboardFocus;
|
auto keyboardSurface = g_pSeatManager->m_state.keyboardFocus;
|
||||||
if (keyboardSurface && isSurfaceComitted(keyboardSurface.lock()))
|
if (keyboardSurface && isSurfaceCommitted(keyboardSurface.lock()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SP<CWLSurfaceResource> surface = nullptr;
|
SP<CWLSurfaceResource> surface = nullptr;
|
||||||
for (auto const& [surf, state] : m_surfaces) {
|
for (auto const& [surf, state] : m_surfaces) {
|
||||||
if (state->m_state == CFocusGrabSurfaceState::Comitted) {
|
if (state->m_state == CFocusGrabSurfaceState::Committed) {
|
||||||
surface = surf.lock();
|
surface = surf.lock();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -111,7 +111,7 @@ void CFocusGrab::refocusKeyboard() {
|
||||||
|
|
||||||
void CFocusGrab::commit(bool removeOnly) {
|
void CFocusGrab::commit(bool removeOnly) {
|
||||||
auto surfacesChanged = false;
|
auto surfacesChanged = false;
|
||||||
auto anyComitted = false;
|
auto anyCommitted = false;
|
||||||
for (auto iter = m_surfaces.begin(); iter != m_surfaces.end();) {
|
for (auto iter = m_surfaces.begin(); iter != m_surfaces.end();) {
|
||||||
switch (iter->second->m_state) {
|
switch (iter->second->m_state) {
|
||||||
case CFocusGrabSurfaceState::PendingRemoval:
|
case CFocusGrabSurfaceState::PendingRemoval:
|
||||||
|
|
@ -121,20 +121,20 @@ void CFocusGrab::commit(bool removeOnly) {
|
||||||
continue;
|
continue;
|
||||||
case CFocusGrabSurfaceState::PendingAddition:
|
case CFocusGrabSurfaceState::PendingAddition:
|
||||||
if (!removeOnly) {
|
if (!removeOnly) {
|
||||||
iter->second->m_state = CFocusGrabSurfaceState::Comitted;
|
iter->second->m_state = CFocusGrabSurfaceState::Committed;
|
||||||
m_grab->add(iter->first.lock());
|
m_grab->add(iter->first.lock());
|
||||||
surfacesChanged = true;
|
surfacesChanged = true;
|
||||||
anyComitted = true;
|
anyCommitted = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CFocusGrabSurfaceState::Comitted: anyComitted = true; break;
|
case CFocusGrabSurfaceState::Committed: anyCommitted = true; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
iter++;
|
iter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (surfacesChanged) {
|
if (surfacesChanged) {
|
||||||
if (anyComitted)
|
if (anyCommitted)
|
||||||
start();
|
start();
|
||||||
else
|
else
|
||||||
finish(true);
|
finish(true);
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class CFocusGrabSurfaceState {
|
||||||
enum State {
|
enum State {
|
||||||
PendingAddition,
|
PendingAddition,
|
||||||
PendingRemoval,
|
PendingRemoval,
|
||||||
Comitted,
|
Committed,
|
||||||
} m_state = PendingAddition;
|
} m_state = PendingAddition;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -35,7 +35,7 @@ class CFocusGrab {
|
||||||
~CFocusGrab();
|
~CFocusGrab();
|
||||||
|
|
||||||
bool good();
|
bool good();
|
||||||
bool isSurfaceComitted(SP<CWLSurfaceResource> surface);
|
bool isSurfaceCommitted(SP<CWLSurfaceResource> surface);
|
||||||
|
|
||||||
void start();
|
void start();
|
||||||
void finish(bool sendCleared);
|
void finish(bool sendCleared);
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,9 @@ CGlobalShortcutsProtocol::CGlobalShortcutsProtocol(const wl_interface* iface, co
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGlobalShortcutsProtocol::bindManager(wl_client* client, void* data, uint32_t ver, uint32_t id) {
|
void CGlobalShortcutsProtocol::bindManager(wl_client* client, void* data, uint32_t ver, uint32_t id) {
|
||||||
const auto RESROUCE = m_clients.emplace_back(makeShared<CShortcutClient>(makeShared<CHyprlandGlobalShortcutsManagerV1>(client, ver, id)));
|
const auto RESOURCE = m_clients.emplace_back(makeShared<CShortcutClient>(makeShared<CHyprlandGlobalShortcutsManagerV1>(client, ver, id)));
|
||||||
|
|
||||||
if UNLIKELY (!RESROUCE->good()) {
|
if UNLIKELY (!RESOURCE->good()) {
|
||||||
wl_client_post_no_memory(client);
|
wl_client_post_no_memory(client);
|
||||||
m_clients.pop_back();
|
m_clients.pop_back();
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -32,14 +32,14 @@ CDMABUFFormatTable::CDMABUFFormatTable(SDMABUFTranche _rendererTranche, std::vec
|
||||||
// insert formats into vec if they got inserted into set, meaning they're unique
|
// insert formats into vec if they got inserted into set, meaning they're unique
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
m_rendererTranche.indicies.clear();
|
m_rendererTranche.indices.clear();
|
||||||
for (auto const& fmt : m_rendererTranche.formats) {
|
for (auto const& fmt : m_rendererTranche.formats) {
|
||||||
for (auto const& mod : fmt.modifiers) {
|
for (auto const& mod : fmt.modifiers) {
|
||||||
auto format = std::make_pair<>(fmt.drmFormat, mod);
|
auto format = std::make_pair<>(fmt.drmFormat, mod);
|
||||||
auto [_, inserted] = formats.insert(format);
|
auto [_, inserted] = formats.insert(format);
|
||||||
if (inserted) {
|
if (inserted) {
|
||||||
// if it was inserted into set, then its unique and will have a new index in vec
|
// if it was inserted into set, then its unique and will have a new index in vec
|
||||||
m_rendererTranche.indicies.push_back(i++);
|
m_rendererTranche.indices.push_back(i++);
|
||||||
formatsVec.push_back(SDMABUFFormatTableEntry{
|
formatsVec.push_back(SDMABUFFormatTableEntry{
|
||||||
.fmt = fmt.drmFormat,
|
.fmt = fmt.drmFormat,
|
||||||
.modifier = mod,
|
.modifier = mod,
|
||||||
|
|
@ -47,29 +47,29 @@ CDMABUFFormatTable::CDMABUFFormatTable(SDMABUFTranche _rendererTranche, std::vec
|
||||||
} else {
|
} else {
|
||||||
// if it wasn't inserted then find its index in vec
|
// if it wasn't inserted then find its index in vec
|
||||||
auto it = std::ranges::find_if(formatsVec, [fmt, mod](const SDMABUFFormatTableEntry& oth) { return oth.fmt == fmt.drmFormat && oth.modifier == mod; });
|
auto it = std::ranges::find_if(formatsVec, [fmt, mod](const SDMABUFFormatTableEntry& oth) { return oth.fmt == fmt.drmFormat && oth.modifier == mod; });
|
||||||
m_rendererTranche.indicies.push_back(it - formatsVec.begin());
|
m_rendererTranche.indices.push_back(it - formatsVec.begin());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& [monitor, tranche] : m_monitorTranches) {
|
for (auto& [monitor, tranche] : m_monitorTranches) {
|
||||||
tranche.indicies.clear();
|
tranche.indices.clear();
|
||||||
for (auto const& fmt : tranche.formats) {
|
for (auto const& fmt : tranche.formats) {
|
||||||
for (auto const& mod : fmt.modifiers) {
|
for (auto const& mod : fmt.modifiers) {
|
||||||
// apparently these can implode on planes, so dont use them
|
// apparently these can implode on planes, so don't use them
|
||||||
if (mod == DRM_FORMAT_MOD_INVALID || mod == DRM_FORMAT_MOD_LINEAR)
|
if (mod == DRM_FORMAT_MOD_INVALID || mod == DRM_FORMAT_MOD_LINEAR)
|
||||||
continue;
|
continue;
|
||||||
auto format = std::make_pair<>(fmt.drmFormat, mod);
|
auto format = std::make_pair<>(fmt.drmFormat, mod);
|
||||||
auto [_, inserted] = formats.insert(format);
|
auto [_, inserted] = formats.insert(format);
|
||||||
if (inserted) {
|
if (inserted) {
|
||||||
tranche.indicies.push_back(i++);
|
tranche.indices.push_back(i++);
|
||||||
formatsVec.push_back(SDMABUFFormatTableEntry{
|
formatsVec.push_back(SDMABUFFormatTableEntry{
|
||||||
.fmt = fmt.drmFormat,
|
.fmt = fmt.drmFormat,
|
||||||
.modifier = mod,
|
.modifier = mod,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
auto it = std::ranges::find_if(formatsVec, [fmt, mod](const SDMABUFFormatTableEntry& oth) { return oth.fmt == fmt.drmFormat && oth.modifier == mod; });
|
auto it = std::ranges::find_if(formatsVec, [fmt, mod](const SDMABUFFormatTableEntry& oth) { return oth.fmt == fmt.drmFormat && oth.modifier == mod; });
|
||||||
tranche.indicies.push_back(it - formatsVec.begin());
|
tranche.indices.push_back(it - formatsVec.begin());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -318,8 +318,8 @@ void CLinuxDMABUFFeedbackResource::sendTranche(SDMABUFTranche& tranche) {
|
||||||
m_resource->sendTrancheFlags((zwpLinuxDmabufFeedbackV1TrancheFlags)tranche.flags);
|
m_resource->sendTrancheFlags((zwpLinuxDmabufFeedbackV1TrancheFlags)tranche.flags);
|
||||||
|
|
||||||
wl_array indices = {
|
wl_array indices = {
|
||||||
.size = tranche.indicies.size() * sizeof(tranche.indicies.at(0)),
|
.size = tranche.indices.size() * sizeof(tranche.indices.at(0)),
|
||||||
.data = tranche.indicies.data(),
|
.data = tranche.indices.data(),
|
||||||
};
|
};
|
||||||
m_resource->sendTrancheFormats(&indices);
|
m_resource->sendTrancheFormats(&indices);
|
||||||
m_resource->sendTrancheDone();
|
m_resource->sendTrancheDone();
|
||||||
|
|
@ -421,7 +421,7 @@ CLinuxDMABufV1Protocol::CLinuxDMABufV1Protocol(const wl_interface* iface, const
|
||||||
|
|
||||||
SDMABUFTranche eglTranche = {
|
SDMABUFTranche eglTranche = {
|
||||||
.device = m_mainDevice,
|
.device = m_mainDevice,
|
||||||
.flags = 0, // renderer isnt for ds so dont set flag.
|
.flags = 0, // renderer isn't for ds so don't set flag.
|
||||||
.formats = g_pHyprOpenGL->getDRMFormats(),
|
.formats = g_pHyprOpenGL->getDRMFormats(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ struct SDMABUFTranche {
|
||||||
dev_t device = 0;
|
dev_t device = 0;
|
||||||
uint32_t flags = 0;
|
uint32_t flags = 0;
|
||||||
std::vector<SDRMFormat> formats;
|
std::vector<SDRMFormat> formats;
|
||||||
std::vector<uint16_t> indicies;
|
std::vector<uint16_t> indices;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CDMABUFFormatTable {
|
class CDMABUFFormatTable {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, int32_t
|
||||||
m_monitor = CWLOutputResource::fromResource(output)->m_monitor;
|
m_monitor = CWLOutputResource::fromResource(output)->m_monitor;
|
||||||
|
|
||||||
if (!m_monitor) {
|
if (!m_monitor) {
|
||||||
LOGM(ERR, "Client requested sharing of a monitor that doesnt exist");
|
LOGM(ERR, "Client requested sharing of a monitor that doesn't exist");
|
||||||
m_resource->sendFailed();
|
m_resource->sendFailed();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -48,7 +48,7 @@ CScreencopyFrame::CScreencopyFrame(SP<CZwlrScreencopyFrameV1> resource_, int32_t
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: hack, we can't bit flip so we'll format flip heh, GL_BGRA_EXT wont work here
|
// TODO: hack, we can't bit flip so we'll format flip heh, GL_BGRA_EXT won't work here
|
||||||
if (m_shmFormat == DRM_FORMAT_XRGB2101010 || m_shmFormat == DRM_FORMAT_ARGB2101010)
|
if (m_shmFormat == DRM_FORMAT_XRGB2101010 || m_shmFormat == DRM_FORMAT_ARGB2101010)
|
||||||
m_shmFormat = DRM_FORMAT_XBGR2101010;
|
m_shmFormat = DRM_FORMAT_XBGR2101010;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,8 +121,8 @@ CSessionLock::CSessionLock(SP<CExtSessionLockV1> resource_) : m_resource(resourc
|
||||||
|
|
||||||
m_events.unlockAndDestroy.emit();
|
m_events.unlockAndDestroy.emit();
|
||||||
|
|
||||||
// if lock tools have hidden it and doesnt restore it, we wont recieve a new cursor until the cursorshape protocol gives us one.
|
// if lock tools have hidden it and doesn't restore it, we won't receive a new cursor until the cursorshape protocol gives us one.
|
||||||
// so set it to left_ptr so the "desktop/wallpaper" doesnt end up missing a cursor until hover over a window sending us a shape.
|
// so set it to left_ptr so the "desktop/wallpaper" doesn't end up missing a cursor until hover over a window sending us a shape.
|
||||||
g_pHyprRenderer->setCursorFromName("left_ptr");
|
g_pHyprRenderer->setCursorFromName("left_ptr");
|
||||||
|
|
||||||
m_inert = true;
|
m_inert = true;
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ wl_client* CXXColorManagementOutput::client() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CXXColorManagementSurface::CXXColorManagementSurface(SP<CWLSurfaceResource> surface_) : m_surface(surface_) {
|
CXXColorManagementSurface::CXXColorManagementSurface(SP<CWLSurfaceResource> surface_) : m_surface(surface_) {
|
||||||
// only for frog cm untill wayland cm is adopted
|
// only for frog cm until wayland cm is adopted
|
||||||
}
|
}
|
||||||
|
|
||||||
CXXColorManagementSurface::CXXColorManagementSurface(SP<CXxColorManagementSurfaceV4> resource_, SP<CWLSurfaceResource> surface_) : m_surface(surface_), m_resource(resource_) {
|
CXXColorManagementSurface::CXXColorManagementSurface(SP<CXxColorManagementSurfaceV4> resource_, SP<CWLSurfaceResource> surface_) : m_surface(surface_), m_resource(resource_) {
|
||||||
|
|
@ -600,7 +600,7 @@ CXXColorManagementImageDescriptionInfo::CXXColorManagementImageDescriptionInfo(S
|
||||||
m_resource->sendTfNamed(m_settings.transferFunction);
|
m_resource->sendTfNamed(m_settings.transferFunction);
|
||||||
m_resource->sendLuminances(std::round(m_settings.luminances.min * 10000), m_settings.luminances.max, m_settings.luminances.reference);
|
m_resource->sendLuminances(std::round(m_settings.luminances.min * 10000), m_settings.luminances.max, m_settings.luminances.reference);
|
||||||
|
|
||||||
// send expexted display paramateres
|
// send expected display paramateres
|
||||||
m_resource->sendTargetPrimaries(toProto(m_settings.masteringPrimaries.red.x), toProto(m_settings.masteringPrimaries.red.y), toProto(m_settings.masteringPrimaries.green.x),
|
m_resource->sendTargetPrimaries(toProto(m_settings.masteringPrimaries.red.x), toProto(m_settings.masteringPrimaries.red.y), toProto(m_settings.masteringPrimaries.green.x),
|
||||||
toProto(m_settings.masteringPrimaries.green.y), toProto(m_settings.masteringPrimaries.blue.x), toProto(m_settings.masteringPrimaries.blue.y),
|
toProto(m_settings.masteringPrimaries.green.y), toProto(m_settings.masteringPrimaries.blue.x), toProto(m_settings.masteringPrimaries.blue.y),
|
||||||
toProto(m_settings.masteringPrimaries.white.x), toProto(m_settings.masteringPrimaries.white.y));
|
toProto(m_settings.masteringPrimaries.white.x), toProto(m_settings.masteringPrimaries.white.y));
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ void SSurfaceState::reset() {
|
||||||
// applies only to the buffer that is attached to the surface
|
// applies only to the buffer that is attached to the surface
|
||||||
acquire = {};
|
acquire = {};
|
||||||
|
|
||||||
// wl_surface.commit assings pending ... and clears pending damage.
|
// wl_surface.commit assigns pending ... and clears pending damage.
|
||||||
damage.clear();
|
damage.clear();
|
||||||
bufferDamage.clear();
|
bufferDamage.clear();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -855,7 +855,7 @@ void CHyprOpenGLImpl::end() {
|
||||||
|
|
||||||
// if we dropped to offMain, release it now.
|
// if we dropped to offMain, release it now.
|
||||||
// if there is a plugin constantly using it, this might be a bit slow,
|
// if there is a plugin constantly using it, this might be a bit slow,
|
||||||
// but I havent seen a single plugin yet use these, so it's better to drop a bit of vram.
|
// but I haven't seen a single plugin yet use these, so it's better to drop a bit of vram.
|
||||||
if (m_renderData.pCurrentMonData->offMainFB.isAllocated())
|
if (m_renderData.pCurrentMonData->offMainFB.isAllocated())
|
||||||
m_renderData.pCurrentMonData->offMainFB.release();
|
m_renderData.pCurrentMonData->offMainFB.release();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2414,7 +2414,7 @@ void CHyprRenderer::makeSnapshot(PHLWINDOW pWindow) {
|
||||||
|
|
||||||
// we need to "damage" the entire monitor
|
// we need to "damage" the entire monitor
|
||||||
// so that we render the entire window
|
// so that we render the entire window
|
||||||
// this is temporary, doesnt mess with the actual damage
|
// this is temporary, doesn't mess with the actual damage
|
||||||
CRegion fakeDamage{0, 0, (int)PMONITOR->m_transformedSize.x, (int)PMONITOR->m_transformedSize.y};
|
CRegion fakeDamage{0, 0, (int)PMONITOR->m_transformedSize.x, (int)PMONITOR->m_transformedSize.y};
|
||||||
|
|
||||||
PHLWINDOWREF ref{pWindow};
|
PHLWINDOWREF ref{pWindow};
|
||||||
|
|
@ -2447,7 +2447,7 @@ void CHyprRenderer::makeSnapshot(PHLLS pLayer) {
|
||||||
|
|
||||||
// we need to "damage" the entire monitor
|
// we need to "damage" the entire monitor
|
||||||
// so that we render the entire window
|
// so that we render the entire window
|
||||||
// this is temporary, doesnt mess with the actual damage
|
// this is temporary, doesn't mess with the actual damage
|
||||||
CRegion fakeDamage{0, 0, (int)PMONITOR->m_transformedSize.x, (int)PMONITOR->m_transformedSize.y};
|
CRegion fakeDamage{0, 0, (int)PMONITOR->m_transformedSize.x, (int)PMONITOR->m_transformedSize.y};
|
||||||
|
|
||||||
makeEGLCurrent();
|
makeEGLCurrent();
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ void main() {
|
||||||
pixCoord -= fullSize * 0.5 - radius;
|
pixCoord -= fullSize * 0.5 - radius;
|
||||||
pixCoordOuter -= fullSize * 0.5 - radiusOuter;
|
pixCoordOuter -= fullSize * 0.5 - radiusOuter;
|
||||||
|
|
||||||
// center the pixes dont make it top-left
|
// center the pixes don't make it top-left
|
||||||
pixCoord += vec2(1.0, 1.0) / fullSize;
|
pixCoord += vec2(1.0, 1.0) / fullSize;
|
||||||
pixCoordOuter += vec2(1.0, 1.0) / fullSize;
|
pixCoordOuter += vec2(1.0, 1.0) / fullSize;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ vec4 rounding(vec4 color) {
|
||||||
pixCoord -= topLeft + fullSize * 0.5;
|
pixCoord -= topLeft + fullSize * 0.5;
|
||||||
pixCoord *= vec2(lessThan(pixCoord, vec2(0.0))) * -2.0 + 1.0;
|
pixCoord *= vec2(lessThan(pixCoord, vec2(0.0))) * -2.0 + 1.0;
|
||||||
pixCoord -= fullSize * 0.5 - radius;
|
pixCoord -= fullSize * 0.5 - radius;
|
||||||
pixCoord += vec2(1.0, 1.0) / fullSize; // center the pix dont make it top-left
|
pixCoord += vec2(1.0, 1.0) / fullSize; // center the pix don't make it top-left
|
||||||
|
|
||||||
if (pixCoord.x + pixCoord.y > radius) {
|
if (pixCoord.x + pixCoord.y > radius) {
|
||||||
float dist = pow(pow(pixCoord.x, roundingPower) + pow(pixCoord.y, roundingPower), 1.0/roundingPower);
|
float dist = pow(pow(pixCoord.x, roundingPower) + pow(pixCoord.y, roundingPower), 1.0/roundingPower);
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ static bool openSockets(std::array<CFileDescriptor, 2>& sockets, int display) {
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (*CREATEABSTRACTSOCKET) {
|
if (*CREATEABSTRACTSOCKET) {
|
||||||
Debug::log(WARN, "The abstract XWayland Unix domain socket might be used only on Linux systems. A regular one'll be created insted.");
|
Debug::log(WARN, "The abstract XWayland Unix domain socket might be used only on Linux systems. A regular one'll be created instead.");
|
||||||
}
|
}
|
||||||
path = getSocketPath(display, false);
|
path = getSocketPath(display, false);
|
||||||
strncpy(addr.sun_path, path.c_str(), path.length() + 1);
|
strncpy(addr.sun_path, path.c_str(), path.length() + 1);
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ void CXDataSource::send(const std::string& mime, CFileDescriptor fd) {
|
||||||
|
|
||||||
xcb_flush(g_pXWayland->m_wm->getConnection());
|
xcb_flush(g_pXWayland->m_wm->getConnection());
|
||||||
|
|
||||||
//TODO: make CFileDescriptor setflags take SETFL aswell
|
//TODO: make CFileDescriptor setflags take SETFL as well
|
||||||
fcntl(fd.get(), F_SETFL, O_WRONLY | O_NONBLOCK);
|
fcntl(fd.get(), F_SETFL, O_WRONLY | O_NONBLOCK);
|
||||||
transfer->wlFD = std::move(fd);
|
transfer->wlFD = std::move(fd);
|
||||||
m_selection.transfers.emplace_back(std::move(transfer));
|
m_selection.transfers.emplace_back(std::move(transfer));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue