[Spice-devel] [PATCH spice] spicec-x11: Add a few missing XLockDisplay calls (rhbz#54265)
Hans de Goede
hdegoede at redhat.com
Thu Nov 18 00:35:23 PST 2010
Hi,
On 11/18/2010 09:32 AM, Alon Levy wrote:
> Looks pretty harmless, but that's from someone not even sure what XIM is (input management?).
>
Yes input management
> Did you just miss these calls when doing the XLockDisplay addition before?
Yes.
Regards,
Hans
>
> On Wed, Nov 17, 2010 at 12:30:46PM +0100, Hans de Goede wrote:
>> 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
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
More information about the Spice-devel
mailing list