virtualkeyboard: check if VirtualKeyboard is valid before accessing client. (#6460)

This fixes crash when restarting fcitx (#6378)
This commit is contained in:
Yang, Ying-chao 2024-06-13 17:33:47 +08:00 committed by GitHub
parent d677ac6f87
commit a54f98c203
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View file

@ -81,7 +81,7 @@ SP<CInputMethodV2> CInputMethodKeyboardGrabV2::getOwner() {
} }
wl_client* CInputMethodKeyboardGrabV2::client() { 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_) { CInputMethodPopupV2::CInputMethodPopupV2(SP<CZwpInputPopupSurfaceV2> resource_, SP<CInputMethodV2> owner_, SP<CWLSurfaceResource> surface) : resource(resource_), owner(owner_) {

View file

@ -100,7 +100,7 @@ wlr_keyboard* CVirtualKeyboardV1Resource::wlr() {
} }
wl_client* CVirtualKeyboardV1Resource::client() { wl_client* CVirtualKeyboardV1Resource::client() {
return resource->client(); return resource->resource() ? resource->client() : nullptr;
} }
void CVirtualKeyboardV1Resource::releasePressed() { void CVirtualKeyboardV1Resource::releasePressed() {