*** xterm.c Sat Jan 3 11:51:04 2004 --- xterm.c Sat Jan 3 11:57:41 2004 *************** *** 371,376 **** --- 371,391 ---- int *)); + /* CJM added x_get_button_num 9/18/02 */ + static int x_button_numbers[] = { 0, 2, 1 }; + + static int + x_get_button_num (button) + int button; + { + button -= Button1; + if ((button >= 0) && (button < sizeof(x_button_numbers)/sizeof(x_button_numbers[0]))) + return x_button_numbers[button]; + else + return button; + } + + /* Flush display of frame F, or of all frames if F is null. */ static void *************** *** 3498,3504 **** /* Make the event type NO_EVENT; we'll change that when we decide otherwise. */ result->kind = MOUSE_CLICK_EVENT; ! result->code = event->button - Button1; result->timestamp = event->time; result->modifiers = (x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), event->state) --- 3513,3519 ---- /* Make the event type NO_EVENT; we'll change that when we decide otherwise. */ result->kind = MOUSE_CLICK_EVENT; ! result->code = x_get_button_num(event->button); result->timestamp = event->time; result->modifiers = (x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), event->state) *************** *** 5301,5307 **** abort (); emacs_event->kind = SCROLL_BAR_CLICK_EVENT; ! emacs_event->code = event->xbutton.button - Button1; emacs_event->modifiers = (x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (XFRAME (WINDOW_FRAME (XWINDOW (bar->window)))), --- 5316,5322 ---- abort (); emacs_event->kind = SCROLL_BAR_CLICK_EVENT; ! emacs_event->code = x_get_button_num(event->xbutton.button); emacs_event->modifiers = (x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (XFRAME (WINDOW_FRAME (XWINDOW (bar->window)))),