------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA512
-
AUX synergy-1.3.1+gcc-4.3.patch 4463 RMD160 e7c4fb526ec0011a3a9b9974dc20956ccef03a22 SHA1 b3a179405bc5b98c2379e13c27a760b543f7a476 SHA256 0dfcdedce8de2cf1285a7af30652eba7234d95d769f762774975ea4d0f293375
AUX synergy-1.3.1-infinite-timeout-fix.patch 548 RMD160 59f2740e7da43d77ffb82704dab4c90a8c1e0821 SHA1 1fd4646f6b0000f44a7b6d12fe13ca6872c41143 SHA256 9038062a1e678ef858f161393332acdde9124beca45cedff9179582f33d20cca
AUX synergy-1.3.1-stuttered-delay-fix.patch 2144 RMD160 0b375058a69d7f74e5f0da45e16b26bb114eb38f SHA1 b4be9b68a7caae1aa5476139e10566c380a80169 SHA256 4ffbbaea726e507e024d550459fb0ab25a9da70cb90245400e86d035bbd9a1b9
+AUX synergy-1.4.5-gtk3-fix.patch 6353 RMD160 72e1ea1fcb4c7f3f88e93a6b97963908e185dbe5 SHA1 a2e97371c55a42539549137bbe0070e47f794909 SHA256 795673183f1f8bb10aa8361613798e3e33dc229ce36295d4a642e875a849dda8
DIST synergy-1.3.1.tar.gz 793172 RMD160 5f5d7cb8fcfb57a6c8eae83fb53c704cb85c6c16 SHA1 03113ec8aadfecaeba8e369b083f4fb5b44f5c62 SHA256 4a15e26456498dda5f3aa7d688a4892e0c50394a2f01685136fbc954bacc9691
DIST synergy-1.3.6-Source.tar.gz 659025 RMD160 adcd5b7a2de7370a03b404c7827be58cb9f7467a SHA1 acbb8c62bc7f18cd4646c8b116c9acdeb2b405da SHA256 b136fcd2795837c5c56050c32ab32e7305a84fd4ac8f3dd6458d3abc18179162
DIST synergy-1.4.2-Source.tar.gz 868390 RMD160 6dc54750cc9337bbb7c041436adae51bf6988b79 SHA1 d01b147a57cc9ad12287780b19133a0ae0095083 SHA256 eb277833db7e022b064588f64b78bfa36b555ae7aee1e5dd4dafb1c107bc1716
EBUILD synergy-1.3.1.ebuild 1427 RMD160 5fd8e2b3c2e4adbfa10a79d9a608f8a41fa6d777 SHA1 987920d242b123b19cca0c637f2bd6eb8e5ff2a7 SHA256 3c6f65e2d4284ce44add8f33d224d7a44c3cf6c4f7783f0a73004bb8346a36fe
EBUILD synergy-1.3.6.ebuild 1097 RMD160 d40a7065e980ea56013973160886e6a759d75a13 SHA1 f373f52ff568ff32084fe314fe998fc55cb71962 SHA256 d794233a7fd8387378a1691af91d0d3d951e724af8421a52f44ee2fabefb664a
EBUILD synergy-1.4.2.ebuild 1562 RMD160 e37a5e47cbe754d69de986c5cc272c4fdffb44ce SHA1 efa436ab8ec8b3a5a7a9e6c1314260540c6ce58e SHA256 9e41938d68c0aaf0f4148d7f8a3cca4f914ad38276698bb76a7ce6ecd37ec97b
+EBUILD synergy-1.4.5-r1.ebuild 1736 RMD160 0a8f834efdcb288246c6f85b18057369e0302f5c SHA1 401e5a793290ce966a9e8224e8da1ea5bd9c6576 SHA256 99a61f28e2bbdd3697c3335f7a73d46597e652af8395fb67362e70f3d41869a6
EBUILD synergy-1.4.5.ebuild 1665 RMD160 0e6aefbde095b0c7e46ef317a4180307231bd802 SHA1 c377e89b7b77fd459e324757980830a92812788c SHA256 da002f139865d45b6ee9be9f544c35d991d8717aef8d5e9ea981719bc8c8366c
-MISC ChangeLog 9593 RMD160 0532d9072f11a06125d97b25916696a238f86a01 SHA1 0a3d0432ee221e56984f41449919008028bfc69b SHA256 e3cc59f8477243b1546d40a8cb55f524a84a8a90951e5d75da7f4d0958b63a39
+MISC ChangeLog 9818 RMD160 4b8b98d2ea4a29d47f686fe9ba55c47be1dd6ad2 SHA1 e3c7e7dacf3fbbc574a6178b76437e2c7c700f14 SHA256 ccd80f44033cab44896aad3618b9635bf87ac11a7988a3e042f371f0f40799fb
MISC metadata.xml 235 RMD160 fc62e96fe011b16210ab733a4ad8ea9c126fad91 SHA1 28b4e1e1b7086feb881d1d301e47200bcdab3ec0 SHA256 c232364986971636acb82c929ed2cf63881ed3f51ce439d8c4a7a5af34397378
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-iEYEAREKAAYFAk7TdG4ACgkQuUQtlDBCeQLaVACdFntLFEcJm/5RJ93V706OW73t
-B3MAni6ut/wGjogSXuggRQmJ6iGjwXBf
-=4Aj5
------END PGP SIGNATURE-----
--- /dev/null
+diff -urEBwb synergy-1.4.4-Source/CMakeLists.txt synergy-1.4.4/CMakeLists.txt
+--- synergy-1.4.4-Source/CMakeLists.txt 2011-06-22 17:10:22.000000000 -0500
++++ synergy-1.4.4/CMakeLists.txt 2011-10-30 18:14:59.805858447 -0500
+@@ -169,6 +169,7 @@
+ check_include_files("X11/extensions/XKB.h" HAVE_XKB_EXTENSION)
+ check_include_files("X11/extensions/XTest.h" HAVE_X11_EXTENSIONS_XTEST_H)
+ check_include_files(${XKBlib} HAVE_X11_XKBLIB_H)
++ check_include_files("X11/extensions/XInput2.h" HAVE_XI2)
+
+ if (HAVE_X11_EXTENSIONS_DPMS_H)
+ # Assume that function prototypes declared, when include exists.
+@@ -183,6 +184,7 @@
+ check_library_exists("X11;Xext" DPMSQueryExtension "" HAVE_Xext)
+ check_library_exists("X11;Xext;Xtst" XTestQueryExtension "" HAVE_Xtst)
+ check_library_exists("Xinerama" XineramaQueryExtension "" HAVE_Xinerama)
++ check_library_exists("Xi" XISelectEvents "" HAVE_Xi)
+
+ if (HAVE_ICE)
+
+@@ -218,6 +220,10 @@
+
+ endif()
+
++ IF(HAVE_Xi)
++ LIST(APPEND libs Xi)
++ ENDIF()
++
+ # For config.h, set some static values; it may be a good idea to make
+ # these values dynamic for non-standard UNIX compilers.
+ set(ACCEPT_TYPE_ARG3 socklen_t)
+diff -urEBwb synergy-1.4.4-Source/res/config.h.in synergy-1.4.4/res/config.h.in
+--- synergy-1.4.4-Source/res/config.h.in 2009-10-26 02:54:37.000000000 -0500
++++ synergy-1.4.4/res/config.h.in 2011-10-30 17:58:25.054795783 -0500
+@@ -124,6 +124,9 @@
+ /* Define to 1 if you have the <X11/XKBlib.h> header file. */
+ #cmakedefine HAVE_X11_XKBLIB_H ${HAVE_X11_XKBLIB_H}
+
++/* Define to 1 if you have the <X11/extensions/XInput2.h> header file. */
++#cmakedefine HAVE_XI2 ${HAVE_XI2}
++
+ /* Define this if the XKB extension is available. */
+ #cmakedefine HAVE_XKB_EXTENSION ${HAVE_XKB_EXTENSION}
+
+diff -urEBwb synergy-1.4.4-Source/src/lib/platform/CMakeLists.txt synergy-1.4.4/src/lib/platform/CMakeLists.txt
+--- synergy-1.4.4-Source/src/lib/platform/CMakeLists.txt 2011-08-27 21:34:24.000000000 -0500
++++ synergy-1.4.4/src/lib/platform/CMakeLists.txt 2011-10-30 18:08:02.131234528 -0500
+@@ -172,5 +172,5 @@
+ endif()
+
+ if (UNIX)
+- target_link_libraries(platform synergy)
++ target_link_libraries(platform synergy ${libs})
+ endif()
+diff -urEBwb synergy-1.4.4-Source/src/lib/platform/CXWindowsEventQueueBuffer.cpp synergy-1.4.4/src/lib/platform/CXWindowsEventQueueBuffer.cpp
+--- synergy-1.4.4-Source/src/lib/platform/CXWindowsEventQueueBuffer.cpp 2011-01-14 22:12:51.000000000 -0600
++++ synergy-1.4.4/src/lib/platform/CXWindowsEventQueueBuffer.cpp 2011-10-30 17:55:29.951274194 -0500
+@@ -177,7 +177,7 @@
+ SELECT_TYPE_ARG234 NULL,
+ SELECT_TYPE_ARG234 NULL,
+ SELECT_TYPE_ARG5 TIMEOUT_DELAY);
+- if (FD_SET(m_pipefd[0], &rfds) {
++ if (FD_SET(m_pipefd[0], &rfds)) {
+ read(m_pipefd[0], buf, 15);
+ }
+ #endif
+diff -urEBwb synergy-1.4.4-Source/src/lib/platform/CXWindowsScreen.cpp synergy-1.4.4/src/lib/platform/CXWindowsScreen.cpp
+--- synergy-1.4.4-Source/src/lib/platform/CXWindowsScreen.cpp 2011-01-17 14:56:04.000000000 -0600
++++ synergy-1.4.4/src/lib/platform/CXWindowsScreen.cpp 2011-10-30 17:55:29.951274194 -0500
+@@ -59,9 +59,13 @@
+ # if HAVE_XKB_EXTENSION
+ # include <X11/XKBlib.h>
+ # endif
++# ifdef HAVE_XI2
++# include <X11/extensions/XInput2.h>
++# endif
+ #endif
+ #include "CArch.h"
+
++static int xi_opcode;
+
+ //
+ // CXWindowsScreen
+@@ -102,7 +106,8 @@
+ m_screensaverNotify(false),
+ m_xtestIsXineramaUnaware(true),
+ m_preserveFocus(false),
+- m_xkb(false)
++ m_xkb(false),
++ m_xi2detected(false)
+ {
+ assert(s_screen == NULL);
+
+@@ -142,6 +147,15 @@
+ if (m_isPrimary) {
+ // start watching for events on other windows
+ selectEvents(m_root);
++ m_xi2detected = detectXI2();
++
++ if (m_xi2detected) {
++ selectXIRawMotion();
++ } else
++ {
++ // start watching for events on other windows
++ selectEvents(m_root);
++ }
+
+ // prepare to use input methods
+ openIM();
+@@ -1205,6 +1219,35 @@
+ return;
+ }
+
++ if (m_xi2detected) {
++ // Process RawMotion
++ XGenericEventCookie *cookie = (XGenericEventCookie*)&xevent->xcookie;
++ if (XGetEventData(m_display, cookie) &&
++ cookie->type == GenericEvent &&
++ cookie->extension == xi_opcode) {
++ if (cookie->evtype == XI_RawMotion) {
++ // Get current pointer's position
++ Window root, child;
++ XMotionEvent xmotion;
++ xmotion.type = MotionNotify;
++ xmotion.send_event = False; // Raw motion
++ xmotion.display = m_display;
++ xmotion.window = m_window;
++ /* xmotion's time, state and is_hint are not used */
++ unsigned int msk;
++ xmotion.same_screen = XQueryPointer(
++ m_display, m_root, &xmotion.root, &xmotion.subwindow,
++ &xmotion.x_root,
++ &xmotion.y_root,
++ &xmotion.x,
++ &xmotion.y,
++ &msk);
++ onMouseMove(xmotion);
++ return;
++ }
++ }
++ }
++
+ // handle the event ourself
+ switch (xevent->type) {
+ case CreateNotify:
+@@ -1954,3 +1997,27 @@
+ return (m_keycode < x.m_keycode ||
+ (m_keycode == x.m_keycode && m_mask < x.m_mask));
+ }
++
++bool
++CXWindowsScreen::detectXI2()
++{
++ int event, error;
++ return XQueryExtension(m_display,
++ "XInputExtension", &xi_opcode, &event, &error);
++}
++
++void
++CXWindowsScreen::selectXIRawMotion()
++{
++ XIEventMask mask;
++
++ mask.deviceid = XIAllDevices;
++ mask.mask_len = XIMaskLen(XI_RawMotion);
++ mask.mask = (unsigned char*)calloc(mask.mask_len, sizeof(char));
++ mask.deviceid = XIAllMasterDevices;
++ memset(mask.mask, 0, 2);
++ XISetMask(mask.mask, XI_RawKeyRelease);
++ XISetMask(mask.mask, XI_RawMotion);
++ XISelectEvents(m_display, DefaultRootWindow(m_display), &mask, 1);
++ free(mask.mask);
++}
+diff -urEBwb synergy-1.4.4-Source/src/lib/platform/CXWindowsScreen.h synergy-1.4.4/src/lib/platform/CXWindowsScreen.h
+--- synergy-1.4.4-Source/src/lib/platform/CXWindowsScreen.h 2011-08-27 13:41:23.000000000 -0500
++++ synergy-1.4.4/src/lib/platform/CXWindowsScreen.h 2011-10-30 17:55:29.952274694 -0500
+@@ -138,6 +138,8 @@
+ void onMouseRelease(const XButtonEvent&);
+ void onMouseMove(const XMotionEvent&);
+
++ bool detectXI2();
++ void selectXIRawMotion();
+ void selectEvents(Window) const;
+ void doSelectEvents(Window) const;
+
+@@ -235,6 +237,8 @@
+ bool m_xkb;
+ int m_xkbEventBase;
+
++ bool m_xi2detected;
++
+ // pointer to (singleton) screen. this is only needed by
+ // ioErrorHandler().
+ static CXWindowsScreen* s_screen;
--- /dev/null
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/synergy/synergy-1.4.5-r1.ebuild,v 1.1 2011/12/05 14:45:24 darkside Exp $
+
+EAPI=4
+
+inherit eutils cmake-utils qt4-r2
+
+DESCRIPTION="Lets you easily share a single mouse and keyboard between multiple computers."
+HOMEPAGE="http://synergy-foss.org/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}-Source.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="qt4"
+
+RDEPEND="x11-libs/libXtst
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXinerama
+ qt4? ( x11-libs/qt-gui )
+ qt4? ( !x11-misc/qsynergy )"
+DEPEND="${RDEPEND}
+ x11-proto/xextproto
+ x11-proto/xproto
+ x11-proto/kbproto
+ x11-proto/xineramaproto
+ x11-libs/libXt"
+
+S=${WORKDIR}/${P}-Source
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-gtk3-fix.patch"
+}
+
+src_configure() {
+ # 1.4.4+ : http://synergy-foss.org/pm/issues/3016
+ append-ldflags $(no-as-needed)
+
+ cmake-utils_src_configure
+
+ if use qt4 ; then
+ cd src/gui
+ qt4-r2_src_configure
+ fi
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ if use qt4 ; then
+ cd src/gui
+ qt4-r2_src_compile
+ fi
+}
+
+src_install () {
+ dobin bin/${PN}{c,s}
+
+ if use qt4 ; then
+ newbin bin/${PN} qsynergy
+ # FIXME: convert the .ico file to a real png instead
+ newicon src/gui/res/win/QSynergy.ico q${PN}.png
+ make_desktop_entry q${PN} ${PN/s/S} q${PN} Utility;
+ fi
+
+ insinto /etc
+ newins doc/synergy.conf.example synergy.conf
+
+ mv doc/${PN}c.man doc/${PN}c.1 || die
+ mv doc/${PN}s.man doc/${PN}s.1 || die
+ doman doc/${PN}{c,s}.1
+
+ dodoc README doc/synergy.conf.example*
+}