From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Jan 21 09:40:09 2012 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85653106566C for ; Sat, 21 Jan 2012 09:40:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 27AD48FC14 for ; Sat, 21 Jan 2012 09:40:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q0L9e92p036005 for ; Sat, 21 Jan 2012 09:40:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q0L9e9Uc036004; Sat, 21 Jan 2012 09:40:09 GMT (envelope-from gnats) Resent-Date: Sat, 21 Jan 2012 09:40:09 GMT Resent-Message-Id: <201201210940.q0L9e9Uc036004@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Stephen Hurd Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C18B106566C for ; Sat, 21 Jan 2012 09:37:05 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 0E22F8FC08 for ; Sat, 21 Jan 2012 09:37:04 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q0L9b32o046922 for ; Sat, 21 Jan 2012 09:37:03 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id q0L9b3fO046921; Sat, 21 Jan 2012 09:37:03 GMT (envelope-from nobody) Message-Id: <201201210937.q0L9b3fO046921@red.freebsd.org> Date: Sat, 21 Jan 2012 09:37:03 GMT From: Stephen Hurd To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/164349: [PATCH] Xinerama :1 LeftOf or Above :0 mouse issues X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jan 2012 09:40:09 -0000 >Number: 164349 >Category: ports >Synopsis: [PATCH] Xinerama :1 LeftOf or Above :0 mouse issues >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Jan 21 09:40:08 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Stephen Hurd >Release: 9.0-RELEASE >Organization: >Environment: FreeBSD stephen.hurd.local 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:15:25 UTC 2012 root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: As described here: https://bugs.freedesktop.org/show_bug.cgi?id=24986 Xinerama has a problem with multiple monitors when the second monitor is to the left of or above the first one. In my configuration, the first monitor is the built-in display of the laptop and the second monitor is my TV which is "above" the laptop when I'm seated on the couch... swapping the positions of the two is not a valid solution. The bug report talks about a crash, and has a patch to dix/events.c, but that patch seems to already be present in the port. The only problem I see with the current port as-is is that when you cross the left/top edge, the mouse warps to the opposite edge instead of crossing onto the next monitor in that direction. >How-To-Repeat: Set up the second display above or to the left of the first as documented here: https://bugs.freedesktop.org/show_bug.cgi?id=24986 and try to move the cursor onto the second monitor. >Fix: Apply the attached patch (suitable for the files directory) which is taken from the bug report above (renamed with .txt extension for upload). This makes the position relative to the root window a signed integer rather than unsigned allowing events to be to the left of or above the root origin. Patch attached with submission follows: --- include/eventstr.h.orig 2012-01-21 01:10:48.000000000 -0800 +++ include/eventstr.h 2012-01-21 01:10:33.000000000 -0800 @@ -91,9 +91,9 @@ uint32_t button; /**< Button number */ uint32_t key; /**< Key code */ } detail; - uint16_t root_x; /**< Pos relative to root window in integral data */ + int16_t root_x; /**< Pos relative to root window in integral data */ float root_x_frac; /**< Pos relative to root window in frac part */ - uint16_t root_y; /**< Pos relative to root window in integral part */ + int16_t root_y; /**< Pos relative to root window in integral part */ float root_y_frac; /**< Pos relative to root window in frac part */ uint8_t buttons[(MAX_BUTTONS + 7)/8]; /**< Button mask */ struct { >Release-Note: >Audit-Trail: >Unformatted: