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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to