sys/: Don't lock on navigation event push, just on keysym to string.

Original commit message from CVS:
2007-01-23  Julien MOUTTE  <julien@moutte.net>

* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Don't lock on navigation event push, just on keysym to string.
Fixes #397673 again.
This commit is contained in:
Julien Moutte 2007-01-23 13:19:19 +00:00
parent a5146c9037
commit 60dad35de0
3 changed files with 18 additions and 6 deletions

View file

@ -1,3 +1,10 @@
2007-01-23 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Don't lock on navigation event push, just on keysym to string.
Fixes #397673 again.
2007-01-22 Edward Hervey <edward@fluendo.com>
* gst/playback/gstdecodebin2.c: (gst_decode_group_new),

View file

@ -967,11 +967,14 @@ gst_ximagesink_handle_xevents (GstXImageSink * ximagesink)
e.xkey.keycode, 0);
g_mutex_unlock (ximagesink->x_lock);
if (keysym != NoSymbol) {
char *key_str = NULL;
g_mutex_lock (ximagesink->x_lock);
gst_navigation_send_key_event (GST_NAVIGATION (ximagesink),
e.type == KeyPress ?
"key-press" : "key-release", XKeysymToString (keysym));
key_str = XKeysymToString (keysym);
g_mutex_unlock (ximagesink->x_lock);
gst_navigation_send_key_event (GST_NAVIGATION (ximagesink),
e.type == KeyPress ? "key-press" : "key-release", key_str);
} else {
gst_navigation_send_key_event (GST_NAVIGATION (ximagesink),
e.type == KeyPress ? "key-press" : "key-release", "unknown");

View file

@ -1092,11 +1092,13 @@ gst_xvimagesink_handle_xevents (GstXvImageSink * xvimagesink)
e.xkey.keycode, 0);
g_mutex_unlock (xvimagesink->x_lock);
if (keysym != NoSymbol) {
char *key_str = NULL;
g_mutex_lock (xvimagesink->x_lock);
gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
e.type == KeyPress ?
"key-press" : "key-release", XKeysymToString (keysym));
key_str = XKeysymToString (keysym);
g_mutex_unlock (xvimagesink->x_lock);
gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
e.type == KeyPress ? "key-press" : "key-release", key_str);
} else {
gst_navigation_send_key_event (GST_NAVIGATION (xvimagesink),
e.type == KeyPress ? "key-press" : "key-release", "unknown");