Applied a number of patches.

* HP-UX fixes (Bernd Noll)
  * Now handling accept() taking an int 3rd arg
  * Now casting sizeof() to socklen_t where necessary
* BSD ports fix (Kristen Glynn)
  * Now defining NULL via stddef.h
* Crash on X11 using clipboard (Daniel Gollub)
  * CXWindowsClipboard::pushReplies() increments iterator better
* Solaris/HP-UX compile errors
  * Now #ifdef out sets of key syms if first key sym undefined
* Fix assertion on bad mouse position (ubiquitous_q)
  * Validate mouse position from client and fix if necessary
This commit is contained in:
crs23
2007-09-06 05:02:13 +00:00
parent 899beb6919
commit 460b751aba
8 changed files with 66 additions and 18 deletions

View File

@@ -929,16 +929,19 @@ CXWindowsClipboard::pushReplies()
// send the first reply for each window if that reply hasn't
// been sent yet.
for (CReplyMap::iterator index = m_replies.begin();
index != m_replies.end(); ++index) {
index != m_replies.end(); ) {
assert(!index->second.empty());
if (!index->second.front()->m_replied) {
pushReplies(index, index->second, index->second.begin());
}
else {
++index;
}
}
}
void
CXWindowsClipboard::pushReplies(CReplyMap::iterator mapIndex,
CXWindowsClipboard::pushReplies(CReplyMap::iterator& mapIndex,
CReplyList& replies, CReplyList::iterator index)
{
CReply* reply = *index;
@@ -959,9 +962,12 @@ CXWindowsClipboard::pushReplies(CReplyMap::iterator mapIndex,
CXWindowsUtil::CErrorLock lock(m_display);
Window requestor = mapIndex->first;
XSelectInput(m_display, requestor, m_eventMasks[requestor]);
m_replies.erase(mapIndex);
m_replies.erase(mapIndex++);
m_eventMasks.erase(requestor);
}
else {
++mapIndex;
}
}
bool