История изменений
Исправление
sambist,
(текущая версия)
:
while ((warehouse.halt != SML_FALSE) &&
(XNextEvent(warehouse.screen.display, &event) >= 0))
{
switch (event.type)
{
case Expose : mainExpose(event); break;
case FocusIn : mainFocusIn(event); break;
case FocusOut : mainFocusOut(event); break;
case KeyPress : mainKeyPress(event); break;
case KeyRelease : mainKeyRelease(event); break;
case ButtonPress : mainButtonPress(event); break;
case ButtonRelease : mainButtonRelease(event); break;
case EnterNotify : mainEnterNotify(event); break;
case LeaveNotify : mainLeaveNotify(event); break;
case ConfigureNotify : mainConfigureNotify(event); break;
case ClientMessage : mainClientMessage(event); break;
case MapNotify : mainMapNotify(event); break;
case UnmapNotify : mainUnmapNotify(event); break;
case MotionNotify : mainMotionNotify(event); break;
default: break;
}
}
Очередь на текущий момент: (внизу самые старые, FIFO)
5-MapNotify
4-KeyPress
3-KeyPress
2-KeyPress
1-KeyPress
0-EnterNotify
Вот ставит эта штука в конец FocusIn (или что во что там GetInputFocus развернется).
Вопрос - сообщения 0 - 5 будут: а) похерены, б) обработаны моими обработчиками?
Если б) то в каком обработчике у меня выскочит «лишний» вызов? Как разруливаются два бесконечных цикла: мой и тот, что в XSync?
Или его XGetInputFocus вообще не касается этой очереди?
Исходная версия
sambist,
:
while ((warehouse.halt != SML_FALSE) &&
(XNextEvent(warehouse.screen.display, &event) >= 0))
{
switch (event.type)
{
case Expose : mainExpose(event); break;
case FocusIn : mainFocusIn(event); break;
case FocusOut : mainFocusOut(event); break;
case KeyPress : mainKeyPress(event); break;
case KeyRelease : mainKeyRelease(event); break;
case ButtonPress : mainButtonPress(event); break;
case ButtonRelease : mainButtonRelease(event); break;
case EnterNotify : mainEnterNotify(event); break;
case LeaveNotify : mainLeaveNotify(event); break;
case ConfigureNotify : mainConfigureNotify(event); break;
case ClientMessage : mainClientMessage(event); break;
case MapNotify : mainMapNotify(event); break;
case UnmapNotify : mainUnmapNotify(event); break;
case MotionNotify : mainMotionNotify(event); break;
default: break;
}
}
Очередь на текущий момент: (внизу самые старые, FIFO)
5-MapNotify
4-KeyPress
3-KeyPress
2-KeyPress
1-KeyPress
0-EnterNotify
Вот ставит эта штука в конец FocusIn (или что во что там GetInputFocus развернется).
Вопрос - сообщения 0 - 5 будут: а) похерены, б) обработаны моими обработчиками?
Если б) то в каком обработчике у меня выскочит «лишний» вызов? Как разруливаются два бесконечных цикла: мой и тот, что в XSync?
Или его XGetInputFocus вообще не касается этой очереди?