Proper handling of resize events.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@256 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-02-06 00:09:47 +00:00
parent ecb2fc7d57
commit 11506c5a61
8 changed files with 67 additions and 26 deletions
+15 -9
View File
@@ -35,24 +35,22 @@ Poll::poll() {
m_maxFd = select(m_maxFd + 1, &m_readSet, &m_writeSet, &m_exceptSet, &timeout);
if (m_maxFd >= 0)
if (m_maxFd >= 0) {
work();
else if (errno == EINTR)
} else if (errno == EINTR) {
m_slotSelectInterrupted();
work_input();
else if (errno < 0)
} else if (errno < 0) {
throw std::runtime_error("Poll::work(): select error");
}
}
void
Poll::work() {
if (FD_ISSET(0, &m_readSet)) {
int key;
while ((key = getch()) != ERR)
m_slotReadStdin(key);
}
if (FD_ISSET(0, &m_readSet))
work_input();
if (m_curlStack.is_busy())
m_curlStack.perform();
@@ -60,6 +58,14 @@ Poll::work() {
torrent::work(&m_readSet, &m_writeSet, &m_exceptSet, m_maxFd);
}
void
Poll::work_input() {
int key;
while ((key = getch()) != ERR)
m_slotReadStdin(key);
}
void
Poll::register_http() {
torrent::Http::set_factory(sigc::bind(sigc::ptr_fun(&core::CurlGet::new_object), &m_curlStack));
+1
View File
@@ -22,6 +22,7 @@ public:
private:
void work();
void work_input();
SlotInt m_slotReadStdin;
Slot m_slotSelectInterrupted;