mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-17 21:13:48 -07:00
virtualkeyboard: check if VirtualKeyboard is valid before accessing client. (#6460)
This fixes crash when restarting fcitx (#6378)
This commit is contained in:
@@ -81,7 +81,7 @@ SP<CInputMethodV2> CInputMethodKeyboardGrabV2::getOwner() {
|
||||
}
|
||||
|
||||
wl_client* CInputMethodKeyboardGrabV2::client() {
|
||||
return resource->client();
|
||||
return resource->resource() ? resource->client() : nullptr;
|
||||
}
|
||||
|
||||
CInputMethodPopupV2::CInputMethodPopupV2(SP<CZwpInputPopupSurfaceV2> resource_, SP<CInputMethodV2> owner_, SP<CWLSurfaceResource> surface) : resource(resource_), owner(owner_) {
|
||||
@@ -373,4 +373,4 @@ void CInputMethodV2Protocol::onGetIME(CZwpInputMethodManagerV2* mgr, wl_resource
|
||||
LOGM(LOG, "New IME with resource id {}", id);
|
||||
|
||||
events.newIME.emit(RESOURCE);
|
||||
}
|
||||
}
|
||||
|
@@ -100,7 +100,7 @@ wlr_keyboard* CVirtualKeyboardV1Resource::wlr() {
|
||||
}
|
||||
|
||||
wl_client* CVirtualKeyboardV1Resource::client() {
|
||||
return resource->client();
|
||||
return resource->resource() ? resource->client() : nullptr;
|
||||
}
|
||||
|
||||
void CVirtualKeyboardV1Resource::releasePressed() {
|
||||
@@ -151,4 +151,4 @@ void CVirtualKeyboardProtocol::onCreateKeeb(CZwpVirtualKeyboardManagerV1* pMgr,
|
||||
LOGM(LOG, "New VKeyboard at id {}", id);
|
||||
|
||||
events.newKeyboard.emit(RESOURCE);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user