Я использую следующий код для создания поддельного окна для некоторых интеграционных тестов:
class CXWindowsClipboardTests
{
protected:
virtual void
SetUp()
{
m_display = XOpenDisplay(NULL);
int screen = DefaultScreen(m_display);
Window root = XRootWindow(m_display, screen);
XSetWindowAttributes attr;
attr.do_not_propagate_mask = 0;
attr.override_redirect = True;
attr.cursor = Cursor();
m_window = XCreateWindow(
m_display, root, 0, 0, 1, 1, 0, 0,
InputOnly, CopyFromParent,
CWDontPropagate | CWEventMask |
CWOverrideRedirect | CWCursor,
&attr);
}
virtual void
TearDown()
{
XDestroyWindow(m_display, m_window);
XCloseDisplay(m_display);
}
};
Выше приведена модифицированная версия исходного кода, занимающая меньше места (см. полный исходный код)код ).
Приведенный выше код периодически прерывается на CentOS 5.6 со следующей ошибкой:
X Error of failed request: BadValue
(integer parameter out of range for operation)
Major opcode of failed request: 1 (X_CreateWindow)
Value in failed request: 0x844b530
Serial number of failed request: 7
Current serial number in output stream: 8
Итак, на самом деле два вопроса:
- Чтоможет вызвать сбой XCreateWindow в CentOS с перебоями таким образом?
- И я довольно новичок в разработке X, так что я понятия не имею, что означают различные значения ошибок (например, Значение в неудачном запросе) или какиспользуй их.Может кто-нибудь кратко объяснить это для меня?