tag 565788 + patch
thanks

Hi,

On Mon, 2010-01-18 at 21:38 +0100, Mark de Wever wrote:
> Upgrading libsdl from 1.2.13-5 to 1.2.14-3 breaks Wesnoth. I tested with
> both Wesnoth 1.6.5-1 and a recent upstream Wesnoth trunk revision.
> Somebody did some more testing [1] and the problem seems to depend on
> the WM (I use fvwm). We also have a conversation with Sam Lantinga on
> our mailinglist [2][3][4].
> 
> The problem is that after the upgrade the buttons in the user interface
> no longer work. Clicking with the mouse on a button in the main menu
> does nothing at all, rendering Wesnoth completely unusable.

I've replicated this issue using fvwm on amd64 and have found the cause.

After importing the svn repository in to git and "git bisect"ing, the
problem appears to be due to the first hunk of upstream r4872 (fixing
their #716); the attached diff makes the mouse work as expected in my
testing.

I've uploaded pre-built amd64 binaries to
http://people.debian.org/~adsb/libsdl1.2/ if they're any use in
confirming the fix.

Regards,

Adam
diff -u libsdl1.2-1.2.14/debian/changelog libsdl1.2-1.2.14/debian/changelog
--- libsdl1.2-1.2.14/debian/changelog
+++ libsdl1.2-1.2.14/debian/changelog
@@ -1,3 +1,12 @@
+libsdl1.2 (1.2.14-4.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Add 310_fixmouseclicks.diff to fix problems with left-mouse clicks
+    not working in Wesnoth in windowed mode.  Partially reverts the fix
+    for upstream bug #716 (r4872).  (Closes: #565788).
+
+ -- Adam D. Barratt <a...@adam-barratt.org.uk>  Tue, 06 Apr 2010 19:31:12 +0100
+
 libsdl1.2 (1.2.14-4) unstable; urgency=low
 
   * Move -dev Recommends back to Depends, as other packages may want to 
diff -u libsdl1.2-1.2.14/debian/patches/series libsdl1.2-1.2.14/debian/patches/series
--- libsdl1.2-1.2.14/debian/patches/series
+++ libsdl1.2-1.2.14/debian/patches/series
@@ -17,0 +18 @@
+310_fixmouseclicks
only in patch2:
unchanged:
--- libsdl1.2-1.2.14.orig/debian/patches/310_fixmouseclicks
+++ libsdl1.2-1.2.14/debian/patches/310_fixmouseclicks
@@ -0,0 +1,25 @@
+Index: libsdl1.2-1.2.14/src/video/x11/SDL_x11events.c
+===================================================================
+--- libsdl1.2-1.2.14.orig/src/video/x11/SDL_x11events.c	2010-04-06 19:29:05.000000000 +0100
++++ libsdl1.2-1.2.14/src/video/x11/SDL_x11events.c	2010-04-06 19:29:46.000000000 +0100
+@@ -423,12 +423,15 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+-		if ( this->input_grab == SDL_GRAB_OFF ) {
+-			posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++		if ( (xevent.xcrossing.mode != NotifyGrab) &&
++		     (xevent.xcrossing.mode != NotifyUngrab) ) {
++			if ( this->input_grab == SDL_GRAB_OFF ) {
++				posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++			}
++			posted = SDL_PrivateMouseMotion(0, 0,
++					xevent.xcrossing.x,
++					xevent.xcrossing.y);
+ 		}
+-		posted = SDL_PrivateMouseMotion(0, 0,
+-				xevent.xcrossing.x,
+-				xevent.xcrossing.y);
+ 	    }
+ 	    break;
+ 

Reply via email to