mirror of https://github.com/hyprwm/Hyprland
Compare commits
13 Commits
927231a117
...
32748932d1
Author | SHA1 | Date |
---|---|---|
|
32748932d1 | |
|
9c5dd59d4b | |
|
d16c6aa1db | |
|
712916a450 | |
|
d26128c705 | |
|
367ff516ef | |
|
b81aa11c8b | |
|
fbfb470bde | |
|
e58589f797 | |
|
04fe914737 | |
|
4e753b25a9 | |
|
e089662ae2 | |
|
dc470480a6 |
|
@ -525,7 +525,7 @@ CConfigManager::CConfigManager() {
|
||||||
m_pConfig->addConfigValue("cursor:no_hardware_cursors", Hyprlang::INT{0});
|
m_pConfig->addConfigValue("cursor:no_hardware_cursors", Hyprlang::INT{0});
|
||||||
m_pConfig->addConfigValue("cursor:no_break_fs_vrr", Hyprlang::INT{0});
|
m_pConfig->addConfigValue("cursor:no_break_fs_vrr", Hyprlang::INT{0});
|
||||||
m_pConfig->addConfigValue("cursor:min_refresh_rate", Hyprlang::INT{24});
|
m_pConfig->addConfigValue("cursor:min_refresh_rate", Hyprlang::INT{24});
|
||||||
m_pConfig->addConfigValue("cursor:hotspot_padding", Hyprlang::INT{1});
|
m_pConfig->addConfigValue("cursor:hotspot_padding", Hyprlang::INT{0});
|
||||||
m_pConfig->addConfigValue("cursor:inactive_timeout", Hyprlang::INT{0});
|
m_pConfig->addConfigValue("cursor:inactive_timeout", Hyprlang::INT{0});
|
||||||
m_pConfig->addConfigValue("cursor:no_warps", Hyprlang::INT{0});
|
m_pConfig->addConfigValue("cursor:no_warps", Hyprlang::INT{0});
|
||||||
m_pConfig->addConfigValue("cursor:persistent_warps", Hyprlang::INT{0});
|
m_pConfig->addConfigValue("cursor:persistent_warps", Hyprlang::INT{0});
|
||||||
|
|
|
@ -612,7 +612,7 @@ CBox CPointerManager::getCursorBoxGlobal() {
|
||||||
Vector2D CPointerManager::closestValid(const Vector2D& pos) {
|
Vector2D CPointerManager::closestValid(const Vector2D& pos) {
|
||||||
static auto PADDING = CConfigValue<Hyprlang::INT>("cursor:hotspot_padding");
|
static auto PADDING = CConfigValue<Hyprlang::INT>("cursor:hotspot_padding");
|
||||||
|
|
||||||
auto CURSOR_PADDING = std::clamp((int)*PADDING, 1, 100); // 1px
|
auto CURSOR_PADDING = std::clamp((int)*PADDING, 0, 100);
|
||||||
CBox hotBox = {{pos.x - CURSOR_PADDING, pos.y - CURSOR_PADDING}, {2 * CURSOR_PADDING, 2 * CURSOR_PADDING}};
|
CBox hotBox = {{pos.x - CURSOR_PADDING, pos.y - CURSOR_PADDING}, {2 * CURSOR_PADDING, 2 * CURSOR_PADDING}};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -638,6 +638,12 @@ Vector2D CPointerManager::closestValid(const Vector2D& pos) {
|
||||||
|
|
||||||
for (auto& b : currentMonitorLayout.monitorBoxes) {
|
for (auto& b : currentMonitorLayout.monitorBoxes) {
|
||||||
auto p = b.closestPoint(vec);
|
auto p = b.closestPoint(vec);
|
||||||
|
|
||||||
|
auto maxPoint = Vector2D{std::nextafter(b.x + b.w, -INFINITY), std::nextafter(b.y + b.h, -INFINITY)};
|
||||||
|
|
||||||
|
// because closestPoint clamps up to x + w and y + h
|
||||||
|
p = Vector2D{std::clamp(p.x, b.x, maxPoint.x), std::clamp(p.y, b.y, maxPoint.y)};
|
||||||
|
|
||||||
auto distSq = p.distanceSq(vec);
|
auto distSq = p.distanceSq(vec);
|
||||||
|
|
||||||
if (distSq < distanceSq) {
|
if (distSq < distanceSq) {
|
||||||
|
|
|
@ -1473,14 +1473,7 @@ void CInputManager::updateCapabilities() {
|
||||||
if (h.expired())
|
if (h.expired())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto cap = h->getCapabilities();
|
caps |= h->getCapabilities();
|
||||||
|
|
||||||
if (cap & HID_INPUT_CAPABILITY_KEYBOARD)
|
|
||||||
caps |= WL_SEAT_CAPABILITY_KEYBOARD;
|
|
||||||
if (cap & HID_INPUT_CAPABILITY_POINTER)
|
|
||||||
caps |= WL_SEAT_CAPABILITY_POINTER;
|
|
||||||
if (cap & HID_INPUT_CAPABILITY_TOUCH)
|
|
||||||
caps |= WL_SEAT_CAPABILITY_TOUCH;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_pSeatManager->updateCapabilities(caps);
|
g_pSeatManager->updateCapabilities(caps);
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
|
|
||||||
#define LOGM PROTO::constraints->protoLog
|
#define LOGM PROTO::constraints->protoLog
|
||||||
|
|
||||||
CPointerConstraint::CPointerConstraint(SP<CZwpLockedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime) :
|
CPointerConstraint::CPointerConstraint(SP<CZwpLockedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime_) :
|
||||||
resourceL(resource_), locked(true) {
|
resourceL(resource_), locked(true), lifetime(lifetime_) {
|
||||||
if (!resource_->resource())
|
if (!resource_->resource())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ CPointerConstraint::CPointerConstraint(SP<CZwpLockedPointerV1> resource_, SP<CWL
|
||||||
sharedConstructions();
|
sharedConstructions();
|
||||||
}
|
}
|
||||||
|
|
||||||
CPointerConstraint::CPointerConstraint(SP<CZwpConfinedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime) :
|
CPointerConstraint::CPointerConstraint(SP<CZwpConfinedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime_) :
|
||||||
resourceC(resource_), locked(false) {
|
resourceC(resource_), locked(false), lifetime(lifetime_) {
|
||||||
if (!resource_->resource())
|
if (!resource_->resource())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ class CWLSurfaceResource;
|
||||||
|
|
||||||
class CPointerConstraint {
|
class CPointerConstraint {
|
||||||
public:
|
public:
|
||||||
CPointerConstraint(SP<CZwpLockedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime);
|
CPointerConstraint(SP<CZwpLockedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime_);
|
||||||
CPointerConstraint(SP<CZwpConfinedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime);
|
CPointerConstraint(SP<CZwpConfinedPointerV1> resource_, SP<CWLSurfaceResource> surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime_);
|
||||||
~CPointerConstraint();
|
~CPointerConstraint();
|
||||||
|
|
||||||
bool good();
|
bool good();
|
||||||
|
|
Loading…
Reference in New Issue