From 50eee03f6dbd2ec8bab2e2be87cb7bff785d58c9 Mon Sep 17 00:00:00 2001 From: crs Date: Mon, 29 Jul 2002 16:06:52 +0000 Subject: [PATCH] moved try/catch block from CMSWindowsScreen to CPrimaryClient. this means CMSWindowsScreen doesn't need to include XSynergy.h. --- platform/CMSWindowsScreen.cpp | 28 ++++++++-------------------- server/CPrimaryClient.cpp | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/platform/CMSWindowsScreen.cpp b/platform/CMSWindowsScreen.cpp index 45041f72..68e3f78a 100644 --- a/platform/CMSWindowsScreen.cpp +++ b/platform/CMSWindowsScreen.cpp @@ -5,7 +5,6 @@ #include "CClipboard.h" #include "IMSWindowsScreenEventHandler.h" #include "IScreenReceiver.h" -#include "XSynergy.h" #include "CThread.h" #include "CLock.h" #include "TMethodJob.h" @@ -278,15 +277,10 @@ CMSWindowsScreen::checkClipboards() // least the clipboard itself will work. HWND clipboardOwner = GetClipboardOwner(); if (m_clipboardOwner != clipboardOwner) { - try { - m_clipboardOwner = clipboardOwner; - if (m_clipboardOwner != m_window && m_clipboardOwner != NULL) { - m_receiver->onGrabClipboard(kClipboardClipboard); - m_receiver->onGrabClipboard(kClipboardSelection); - } - } - catch (XBadClient&) { - // ignore + m_clipboardOwner = clipboardOwner; + if (m_clipboardOwner != m_window && m_clipboardOwner != NULL) { + m_receiver->onGrabClipboard(kClipboardClipboard); + m_receiver->onGrabClipboard(kClipboardSelection); } } } @@ -509,16 +503,10 @@ CMSWindowsScreen::onEvent(CEvent* event) // ownership, or now it's owned by nobody, which will happen if // we owned it and switched desktops because we destroy our // window to do that). - try { - m_clipboardOwner = GetClipboardOwner(); - if (m_clipboardOwner != m_window && m_clipboardOwner != NULL) { - m_receiver->onGrabClipboard(kClipboardClipboard); - m_receiver->onGrabClipboard(kClipboardSelection); - } - } - catch (XBadClient&) { - // ignore. this can happen if we receive this event - // before we've fully started up. + m_clipboardOwner = GetClipboardOwner(); + if (m_clipboardOwner != m_window && m_clipboardOwner != NULL) { + m_receiver->onGrabClipboard(kClipboardClipboard); + m_receiver->onGrabClipboard(kClipboardSelection); } return true; diff --git a/server/CPrimaryClient.cpp b/server/CPrimaryClient.cpp index 236fd57c..1f53cb01 100644 --- a/server/CPrimaryClient.cpp +++ b/server/CPrimaryClient.cpp @@ -1,5 +1,6 @@ #include "CPrimaryClient.h" #include "IServer.h" +#include "XSynergy.h" #include "CPrimaryScreen.h" #include "CClipboard.h" #include "CLog.h" @@ -81,13 +82,23 @@ void CPrimaryClient::onInfoChanged(const CClientInfo& info) { m_info = info; - m_server->onInfoChanged(getName(), m_info); + try { + m_server->onInfoChanged(getName(), m_info); + } + catch (XBadClient&) { + // ignore + } } bool CPrimaryClient::onGrabClipboard(ClipboardID id) { - return m_server->onGrabClipboard(getName(), id, m_seqNum); + try { + return m_server->onGrabClipboard(getName(), id, m_seqNum); + } + catch (XBadClient&) { + return false; + } } void