I reviewed the .diff.gz by hand and compared it with the relevant patches in the upstream bugzilla and I think I've concluded that only two files are still affected in the Debian package.
A diff to revert this old patch is attached. I will be uploading a version of firefox with this patch to Ubuntu shortly. I don't have a mouse with many extended buttons so I won't be able to see myself if it causes it not to work any more. I will try to get some feedback from Ubuntu users and report back. Ian.
diff -ruN debian-4/firefox-1.5.dfsg/content/events/src/nsEventStateManager.cpp firefox-1.5.dfsg/content/events/src/nsEventStateManager.cpp --- debian-4/firefox-1.5.dfsg/content/events/src/nsEventStateManager.cpp 2006-01-18 18:51:14.000000000 +0000 +++ firefox-1.5.dfsg/content/events/src/nsEventStateManager.cpp 2005-10-24 08:34:26.000000000 +0100 @@ -24,10 +24,6 @@ * Makoto Kato <[EMAIL PROTECTED]> * Dean Tessman <[EMAIL PROTECTED]> * Mats Palmgren <[EMAIL PROTECTED]> - * Andrew Wellington <[EMAIL PROTECTED]> - * Graham Dennis <[EMAIL PROTECTED]> - * Thomas Kleffel <[EMAIL PROTECTED]> - * Mike Hommey <[EMAIL PROTECTED]> * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), @@ -2024,105 +2020,6 @@ } } break; - case NS_USER_DEFINED_EVENT: // In reality an extended mouse event - { - nsExtendedMouseEventStatus *eMEStatus; - nsMouseEvent *mEvent = (nsMouseEvent* )aEvent; - eMEStatus = (nsExtendedMouseEventStatus *)&mEvent->clickCount; - char ourbutton=0; - char *string, *suffix, *straction, *strnumlines; - PRInt32 action; - PRInt32 numLines; - - // adding 2 below so the maximum number of mouse buttons we can - // support is 99 but to represent the buttons in buttonlist - // we're going to map 10->35 onto 'a'->'z' - // the storage actually supports 256 - if(eMEStatus->button > 35) break; - if(eMEStatus->button > 9) - ourbutton = 'a' + eMEStatus->button -9; - else - ourbutton = '0' + eMEStatus->button; - string = ToNewCString(nsContentUtils::GetCharPref("mousebuttonsextended.buttonlist")); - if(!string) break; - if(!strchr(string, ourbutton)) { - free(string); - break; - } - free(string); - switch(eMEStatus->event) - { - case nsExtendedMouseEventStatus_up: - suffix=strdup(".up"); - break; - - case nsExtendedMouseEventStatus_down: - suffix=strdup(".down"); - break; - default: - return NS_OK; - } - straction= (char *)memset(malloc(100), 0, 100); - strnumlines=(char *)memset(malloc(100), 0, 100); - - strcpy(straction, "mousebuttonsextended.buttons.X.action"); - strcpy(strnumlines, "mousebuttonsextended.buttons.X.numlines"); - strcpy(straction+strlen(straction), suffix); - strcpy(strnumlines+strlen(strnumlines), suffix); - - string = strchr(straction, 'X'); *string = ourbutton; - string = strchr(strnumlines, 'X'); *string = ourbutton; - - action = nsContentUtils::GetIntPref(straction); - numLines = nsContentUtils::GetIntPref(strnumlines); - - switch (action) { - -#if 0 // Because we would have to create a msEvent - case MOUSE_SCROLL_N_LINES: - case MOUSE_SCROLL_PAGE: - { - DoWheelScroll(aPresContext, aTargetFrame, msEvent, numLines, - (msEvent->scrollFlags & nsMouseScrollEvent::kIsHorizontal), - (action == MOUSE_SCROLL_PAGE), PR_FALSE); - - } - break; -#endif - case MOUSE_SCROLL_HISTORY: - { - nsCOMPtr<nsISupports> pcContainer; - pcContainer = mPresContext->GetContainer(); - if (pcContainer) { - nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(pcContainer)); - if (webNav) { - if (numLines < 0) - webNav->GoBack(); - else - webNav->GoForward(); - } - } - } - break; - - case MOUSE_SCROLL_TEXTSIZE: - { - // Exclude form controls and XUL content. - nsIContent* content = aTargetFrame->GetContent(); - if (content && - !content->IsContentOfType(nsIContent::eHTML_FORM_CONTROL) && - !content->IsContentOfType(nsIContent::eXUL)) - { - ChangeTextSize((numLines > 0) ? 1 : -1); - } - } - break; - - default: // Including -1 (do nothing) - break; - } - } - break; case NS_MOUSE_SCROLL: if (nsEventStatus_eConsumeNoDefault != *aStatus) { diff -ruN debian-4/firefox-1.5.dfsg/modules/libpref/src/init/all.js firefox-1.5.dfsg/modules/libpref/src/init/all.js --- debian-4/firefox-1.5.dfsg/modules/libpref/src/init/all.js 2006-01-18 18:51:14.000000000 +0000 +++ firefox-1.5.dfsg/modules/libpref/src/init/all.js 2006-01-18 18:49:10.000000000 +0000 @@ -853,16 +853,6 @@ pref("mousewheel.horizscroll.withmetakey.sysnumlines",false); #endif -pref("mousebuttonsextended.buttonlist", "67"); -pref("mousebuttonsextended.buttons.6.action.up", 2); -pref("mousebuttonsextended.buttons.6.numlines.up", -1); -pref("mousebuttonsextended.buttons.6.action.down", -1); -pref("mousebuttonsextended.buttons.6.numlines.down", -1); -pref("mousebuttonsextended.buttons.7.action.up", 2); -pref("mousebuttonsextended.buttons.7.numlines.up", 1); -pref("mousebuttonsextended.buttons.7.action.down", -1); -pref("mousebuttonsextended.buttons.7.numlines.down", -1); - pref("profile.confirm_automigration",true); // profile.migration_behavior determines how the profiles root is set // 0 - use NS_APP_USER_PROFILES_ROOT_DIR diff -ruN debian-4/firefox-1.5.dfsg/widget/public/nsGUIEvent.h firefox-1.5.dfsg/widget/public/nsGUIEvent.h --- debian-4/firefox-1.5.dfsg/widget/public/nsGUIEvent.h 2006-01-18 18:51:14.000000000 +0000 +++ firefox-1.5.dfsg/widget/public/nsGUIEvent.h 2005-08-31 00:15:10.000000000 +0100 @@ -22,8 +22,6 @@ * Contributor(s): * Makoto Kato <[EMAIL PROTECTED]> * Dean Tessman <[EMAIL PROTECTED]> - * Andrew Wellington <[EMAIL PROTECTED]> - * Graham Dennis <[EMAIL PROTECTED]> * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -943,22 +941,6 @@ nsDragDropEventStatus_eDrop }; -/** - * Event status for an extended mouse button event - * The event (called clickCount) is type PRUint32: - * hence this struct will be of the same size - */ -typedef struct { - PRUint16 realClickCount; - PRUint8 button; - PRUint8 event; // eg button went up / down -} nsExtendedMouseEventStatus; - -enum { - /// different types of events - nsExtendedMouseEventStatus_up, - nsExtendedMouseEventStatus_down -}; #define NS_IS_MOUSE_EVENT(evnt) \ (((evnt)->message == NS_MOUSE_LEFT_BUTTON_DOWN) || \