LINUX.ORG.RU

Xlib


0

0

Постараюсь покороче описать проблему: Вот так работает:

...... w1 = XCreateSimpleWindow(D, drw, 50, 50, 240, 180, 2, BlackPixel(D, 0), WhitePixel(D,0)); XMapWindow(D,w1); XFlush(D); ......

А вот так НЕ работает: ...... w1 = XCreateSimpleWindow(D, drw, 50, 50, 240, 180, 2, BlackPixel(D, 0), WhitePixel(D,0)); I.MFlushW(w1) // где void server::MFlushW(Window ww) { XMapWindow(D,ww); XFlush(D); } .......

Ошибка:

X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 8 (X_MapWindow) Resource id in failed request: 0x1800001 Serial number of failed request: 8 Current serial number in output stream: 10

Почему?

anonymous

Постараюсь покороче описать проблему:
Вот так работает:

......
w1 = XCreateSimpleWindow(D, drw, 50, 50, 240, 180, 2, BlackPixel(D, 0), WhitePixel(D,0));
XMapWindow(D,w1);
XFlush(D);
......

А вот так НЕ работает:
......
w1 = XCreateSimpleWindow(D, drw, 50, 50, 240, 180, 2, BlackPixel(D, 0), WhitePixel(D,0));
I.MFlushW(w1)
// где
void server::MFlushW(Window ww) {
XMapWindow(D,ww);
XFlush(D);
}
.......

Ошибка:

X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 8 (X_MapWindow)
Resource id in failed request: 0x1800001
Serial number of failed request: 8
Current serial number in output stream: 10

Почему?

anonymous
()
Ответ на: комментарий от anonymous

перед MapWindow надо проверить на ошибку создания и в идеале надо дождаться CreateNotify

lg ★★
()

Ничего я не понимаю в этой жизни. Если перед XMapWindow вставить: XCheckWindowEvent(X.D,w1,attr.event_mask,er), то он начинает пахать. Причем вместо w1 и attr.event_mask можно вставлять все что угодно...

PS: ошибки в создании окна нет. Возвращается рабочий id окна

anonymous
()
Ответ на: комментарий от anonymous

да, потому что пока ты делаешь XCheckWindowEvent окно уже успевает реально создаться на X сервере

вобщем, чтобы небыло проблем жди CreateNotify, перед тем как что-либо делать с окном

lg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.