better capability handling

This commit is contained in:
vaxerski 2022-12-05 14:28:27 +00:00
parent f71f04db9e
commit ac0e675f3b
3 changed files with 14 additions and 18 deletions

View file

@ -91,7 +91,7 @@ void Events::listener_newInput(wl_listener* listener, void* data) {
break;
}
g_pInputManager->updateCapabilities(DEVICE);
g_pInputManager->updateCapabilities();
}
void Events::listener_newConstraint(wl_listener* listener, void* data) {

View file

@ -1014,24 +1014,20 @@ void Events::listener_commitConstraint(void* owner, void* data) {
//g_pInputManager->recheckConstraint((SMouse*)owner);
}
void CInputManager::updateCapabilities(wlr_input_device* pDev) {
// TODO: this is dumb
void CInputManager::updateCapabilities() {
uint32_t caps = 0;
switch (pDev->type) {
case WLR_INPUT_DEVICE_KEYBOARD:
m_uiCapabilities |= WL_SEAT_CAPABILITY_KEYBOARD;
break;
case WLR_INPUT_DEVICE_POINTER:
m_uiCapabilities |= WL_SEAT_CAPABILITY_POINTER;
break;
case WLR_INPUT_DEVICE_TOUCH:
m_uiCapabilities |= WL_SEAT_CAPABILITY_TOUCH;
break;
default:
break;
}
if (!m_lKeyboards.empty())
caps |= WL_SEAT_CAPABILITY_KEYBOARD;
if (!m_lMice.empty())
caps |= WL_SEAT_CAPABILITY_POINTER;
if (!m_lTouchDevices.empty())
caps |= WL_SEAT_CAPABILITY_TOUCH;
if (!m_lTabletTools.empty())
caps |= WL_SEAT_CAPABILITY_POINTER;
wlr_seat_set_capabilities(g_pCompositor->m_sSeat.seat, m_uiCapabilities);
wlr_seat_set_capabilities(g_pCompositor->m_sSeat.seat, caps);
m_uiCapabilities = caps;
}
uint32_t CInputManager::accumulateModsFromAllKBs() {

View file

@ -60,7 +60,7 @@ public:
void setTouchDeviceConfigs();
void updateDragIcon();
void updateCapabilities(wlr_input_device*);
void updateCapabilities();
void setClickMode(eClickBehaviorMode);
eClickBehaviorMode getClickMode();