fix(wayland): delete ScrollRemainder in EiScreen
This commit is contained in:
parent
58a6736667
commit
44d7b8d091
1 changed files with 14 additions and 13 deletions
|
|
@ -141,26 +141,23 @@ void EiScreen::initEi()
|
||||||
|
|
||||||
void EiScreen::cleanupEi()
|
void EiScreen::cleanupEi()
|
||||||
{
|
{
|
||||||
|
for (auto device : m_eiDevices) {
|
||||||
|
delete static_cast<ScrollRemainder *>(ei_device_get_user_data(device));
|
||||||
|
ei_device_set_user_data(device, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_eiPointer) {
|
if (m_eiPointer) {
|
||||||
free(ei_device_get_user_data(m_eiPointer));
|
|
||||||
ei_device_set_user_data(m_eiPointer, nullptr);
|
|
||||||
m_eiPointer = ei_device_unref(m_eiPointer);
|
m_eiPointer = ei_device_unref(m_eiPointer);
|
||||||
}
|
}
|
||||||
if (m_eiKeyboard) {
|
if (m_eiKeyboard) {
|
||||||
free(ei_device_get_user_data(m_eiKeyboard));
|
|
||||||
ei_device_set_user_data(m_eiKeyboard, nullptr);
|
|
||||||
m_eiKeyboard = ei_device_unref(m_eiKeyboard);
|
m_eiKeyboard = ei_device_unref(m_eiKeyboard);
|
||||||
}
|
}
|
||||||
if (m_eiAbs) {
|
if (m_eiAbs) {
|
||||||
free(ei_device_get_user_data(m_eiAbs));
|
|
||||||
ei_device_set_user_data(m_eiAbs, nullptr);
|
|
||||||
m_eiAbs = ei_device_unref(m_eiAbs);
|
m_eiAbs = ei_device_unref(m_eiAbs);
|
||||||
}
|
}
|
||||||
m_eiSeat = ei_seat_unref(m_eiSeat);
|
m_eiSeat = ei_seat_unref(m_eiSeat);
|
||||||
for (auto it = m_eiDevices.begin(); it != m_eiDevices.end(); it++) {
|
for (auto device : m_eiDevices) {
|
||||||
free(ei_device_get_user_data(*it));
|
ei_device_unref(device);
|
||||||
ei_device_set_user_data(*it, nullptr);
|
|
||||||
ei_device_unref(*it);
|
|
||||||
}
|
}
|
||||||
m_eiDevices.clear();
|
m_eiDevices.clear();
|
||||||
m_ei = ei_unref(m_ei);
|
m_ei = ei_unref(m_ei);
|
||||||
|
|
@ -636,11 +633,15 @@ void EiScreen::removeDevice(struct ei_device *device)
|
||||||
cancelIdleEmulationTimer();
|
cancelIdleEmulationTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto it = m_eiDevices.begin(); it != m_eiDevices.end(); it++) {
|
delete static_cast<ScrollRemainder *>(ei_device_get_user_data(device));
|
||||||
|
ei_device_set_user_data(device, nullptr);
|
||||||
|
|
||||||
|
for (auto it = m_eiDevices.begin(); it != m_eiDevices.end();) {
|
||||||
if (*it == device) {
|
if (*it == device) {
|
||||||
m_eiDevices.erase(it);
|
it = m_eiDevices.erase(it);
|
||||||
ei_device_unref(device);
|
ei_device_unref(device);
|
||||||
break;
|
} else {
|
||||||
|
++it;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue