- Fix spice client locking up when dealing with XIM input (#654265)
This commit is contained in:
parent
c86bc1f122
commit
f4d936daa9
@ -0,0 +1,48 @@
|
|||||||
|
From 084225fda75be2bead6e2dad313b9e861d93bffc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Wed, 17 Nov 2010 12:19:41 +0100
|
||||||
|
Subject: [PATCH spice] spicec-x11: Add a few missing XLockDisplay calls (rhbz#654265)
|
||||||
|
|
||||||
|
The XIM functions end up waiting for a reply from the server, so they
|
||||||
|
need locking around them. Idem for the XLookupString call.
|
||||||
|
---
|
||||||
|
client/x11/red_window.cpp | 6 ++++++
|
||||||
|
1 files changed, 6 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp
|
||||||
|
index c3ee1b0..c50e307 100644
|
||||||
|
--- a/client/x11/red_window.cpp
|
||||||
|
+++ b/client/x11/red_window.cpp
|
||||||
|
@@ -733,7 +733,9 @@ void RedWindow_p::handle_key_press_event(RedWindow& window, XKeyEvent* event)
|
||||||
|
|
||||||
|
if (x_input_context != NULL) {
|
||||||
|
for (;;) {
|
||||||
|
+ XLockDisplay(x_display);
|
||||||
|
len = XwcLookupString(x_input_context, event, utf32_buf, buf_size, &key_sym, &status);
|
||||||
|
+ XUnlockDisplay(x_display);
|
||||||
|
if (status != XBufferOverflow) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -767,7 +769,9 @@ void RedWindow_p::handle_key_press_event(RedWindow& window, XKeyEvent* event)
|
||||||
|
unsigned char buffer[16];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
+ XLockDisplay(x_display);
|
||||||
|
len = XLookupString(event, (char *)buffer, sizeof(buffer), NULL, NULL);
|
||||||
|
+ XUnlockDisplay(x_display);
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
window.get_listener().on_char((uint32_t)buffer[i]);
|
||||||
|
}
|
||||||
|
@@ -2135,7 +2139,9 @@ void RedWindow::on_focus_in()
|
||||||
|
}
|
||||||
|
_focused = true;
|
||||||
|
if (x_input_context) {
|
||||||
|
+ XLockDisplay(x_display);
|
||||||
|
XwcResetIC(x_input_context);
|
||||||
|
+ XUnlockDisplay(x_display);
|
||||||
|
}
|
||||||
|
XPlatform::on_focus_in();
|
||||||
|
get_listener().on_activate();
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: spice
|
Name: spice
|
||||||
Version: 0.6.3
|
Version: 0.6.3
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: Implements the SPICE protocol
|
Summary: Implements the SPICE protocol
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
@ -13,6 +13,7 @@ Patch3: 0003-Remove-no-longer-used-wstring_printf-functions.patch
|
|||||||
Patch4: 0004-spicec-x11-Do-not-set-_NET_WM_USER_TIME-to-0-on-star.patch
|
Patch4: 0004-spicec-x11-Do-not-set-_NET_WM_USER_TIME-to-0-on-star.patch
|
||||||
Patch5: 0005-spicec-x11-Listen-for-selection-owner-window-destroy.patch
|
Patch5: 0005-spicec-x11-Listen-for-selection-owner-window-destroy.patch
|
||||||
Patch6: 0006-spicec-Make-cegui-log-to-app_data_dir-cegui.log.patch
|
Patch6: 0006-spicec-Make-cegui-log-to-app_data_dir-cegui.log.patch
|
||||||
|
Patch7: 0007-spicec-x11-Add-a-few-missing-XLockDisplay-calls-rhbz.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=613529
|
# https://bugzilla.redhat.com/show_bug.cgi?id=613529
|
||||||
ExclusiveArch: i686 x86_64
|
ExclusiveArch: i686 x86_64
|
||||||
@ -76,6 +77,7 @@ using spice-server, you will need to install spice-server-devel.
|
|||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --enable-gui
|
%configure --enable-gui
|
||||||
@ -118,6 +120,9 @@ rm -f %{buildroot}%{_libdir}/libspice-server.la
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 17 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-4
|
||||||
|
- Fix spice client locking up when dealing with XIM input (#654265)
|
||||||
|
|
||||||
* Sat Nov 6 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-3
|
* Sat Nov 6 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-3
|
||||||
- Log to ~/.spicec/cegui.log rather then to CEGUI.log in the cwd, this
|
- Log to ~/.spicec/cegui.log rather then to CEGUI.log in the cwd, this
|
||||||
fixes spicec from aborting when run in a non writable dir (#650253)
|
fixes spicec from aborting when run in a non writable dir (#650253)
|
||||||
|
Loading…
Reference in New Issue
Block a user