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; +