mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
gl/x11: don't XGetWindowAttributes every XEvent
fixes a deadlock in xcb where the X window may not exist. https://bugzilla.gnome.org/show_bug.cgi?id=745633
This commit is contained in:
parent
9968b512c5
commit
39eb34eb43
1 changed files with 6 additions and 5 deletions
|
@ -539,7 +539,6 @@ gst_gl_window_x11_handle_event (GstGLWindowX11 * window_x11)
|
||||||
KeySym keysym;
|
KeySym keysym;
|
||||||
struct mouse_event *mouse_data;
|
struct mouse_event *mouse_data;
|
||||||
struct key_event *key_data;
|
struct key_event *key_data;
|
||||||
XWindowAttributes attr;
|
|
||||||
|
|
||||||
window = GST_GL_WINDOW (window_x11);
|
window = GST_GL_WINDOW (window_x11);
|
||||||
|
|
||||||
|
@ -549,10 +548,6 @@ gst_gl_window_x11_handle_event (GstGLWindowX11 * window_x11)
|
||||||
|
|
||||||
/* XSendEvent (which are called in other threads) are done from another display structure */
|
/* XSendEvent (which are called in other threads) are done from another display structure */
|
||||||
XNextEvent (window_x11->device, &event);
|
XNextEvent (window_x11->device, &event);
|
||||||
XGetWindowAttributes (window_x11->device, window_x11->internal_win_id,
|
|
||||||
&attr);
|
|
||||||
window_x11->current_width = attr.width;
|
|
||||||
window_x11->current_height = attr.height;
|
|
||||||
|
|
||||||
window_x11->allow_extra_expose_events = XPending (window_x11->device) <= 2;
|
window_x11->allow_extra_expose_events = XPending (window_x11->device) <= 2;
|
||||||
|
|
||||||
|
@ -585,6 +580,9 @@ gst_gl_window_x11_handle_event (GstGLWindowX11 * window_x11)
|
||||||
if (window->resize)
|
if (window->resize)
|
||||||
window->resize (window->resize_data, event.xconfigure.width,
|
window->resize (window->resize_data, event.xconfigure.width,
|
||||||
event.xconfigure.height);
|
event.xconfigure.height);
|
||||||
|
|
||||||
|
window_x11->current_width = event.xconfigure.width;
|
||||||
|
window_x11->current_height = event.xconfigure.width;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -610,6 +608,9 @@ gst_gl_window_x11_handle_event (GstGLWindowX11 * window_x11)
|
||||||
|
|
||||||
gst_object_unref (context);
|
gst_object_unref (context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window_x11->current_width = event.xexpose.width;
|
||||||
|
window_x11->current_height = event.xexpose.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VisibilityNotify:
|
case VisibilityNotify:
|
||||||
|
|
Loading…
Reference in a new issue