comparison src/w32term.c @ 42720:1217a83a82e4

(parse_button): New parameter xbutton. Callers changed. (w32_read_socket): Handle new "XBUTTON" messages.
author Jason Rumney <jasonr@gnu.org>
date Sun, 13 Jan 2002 12:16:05 +0000
parents 640c0fcaebf1
children dee88a860452
comparison
equal deleted inserted replaced
42719:70f13c4f82c7 42720:1217a83a82e4
6035 *frame_y = WINDOW_TO_FRAME_PIXEL_Y (w, *frame_y); 6035 *frame_y = WINDOW_TO_FRAME_PIXEL_Y (w, *frame_y);
6036 *frame_x = WINDOW_TO_FRAME_PIXEL_X (w, *frame_x); 6036 *frame_x = WINDOW_TO_FRAME_PIXEL_X (w, *frame_x);
6037 return success_p; 6037 return success_p;
6038 } 6038 }
6039 6039
6040 /* Parse a button MESSAGE. The button index is returned in PBUTTON, and
6041 the state in PUP. XBUTTON provides extra information for extended mouse
6042 button messages. Returns FALSE if unable to parse the message. */
6040 BOOL 6043 BOOL
6041 parse_button (message, pbutton, pup) 6044 parse_button (message, xbutton, pbutton, pup)
6042 int message; 6045 int message;
6046 int xbutton;
6043 int * pbutton; 6047 int * pbutton;
6044 int * pup; 6048 int * pup;
6045 { 6049 {
6046 int button = 0; 6050 int button = 0;
6047 int up = 0; 6051 int up = 0;
6082 button = 2; 6086 button = 2;
6083 else 6087 else
6084 button = 1; 6088 button = 1;
6085 up = 1; 6089 up = 1;
6086 break; 6090 break;
6091 case WM_XBUTTONDOWN:
6092 button = xbutton + 2;
6093 up = 0;
6094 break;
6095 case WM_XBUTTONUP:
6096 button = xbutton + 2;
6097 up = 1;
6098 break;
6087 default: 6099 default:
6088 return (FALSE); 6100 return (FALSE);
6089 } 6101 }
6090 6102
6091 if (pup) *pup = up; 6103 if (pup) *pup = up;
6107 struct frame *f; 6119 struct frame *f;
6108 { 6120 {
6109 int button; 6121 int button;
6110 int up; 6122 int up;
6111 6123
6112 parse_button (msg->msg.message, &button, &up); 6124 parse_button (msg->msg.message, HIWORD (msg->msg.wParam),
6125 &button, &up);
6113 6126
6114 /* Make the event type no_event; we'll change that when we decide 6127 /* Make the event type no_event; we'll change that when we decide
6115 otherwise. */ 6128 otherwise. */
6116 result->kind = mouse_click; 6129 result->kind = mouse_click;
6117 result->code = button; 6130 result->code = button;
8659 case WM_LBUTTONUP: 8672 case WM_LBUTTONUP:
8660 case WM_MBUTTONDOWN: 8673 case WM_MBUTTONDOWN:
8661 case WM_MBUTTONUP: 8674 case WM_MBUTTONUP:
8662 case WM_RBUTTONDOWN: 8675 case WM_RBUTTONDOWN:
8663 case WM_RBUTTONUP: 8676 case WM_RBUTTONUP:
8677 case WM_XBUTTONDOWN:
8678 case WM_XBUTTONUP:
8664 { 8679 {
8665 /* If we decide we want to generate an event to be seen 8680 /* If we decide we want to generate an event to be seen
8666 by the rest of Emacs, we put it here. */ 8681 by the rest of Emacs, we put it here. */
8667 struct input_event emacs_event; 8682 struct input_event emacs_event;
8668 int tool_bar_p = 0; 8683 int tool_bar_p = 0;
8710 count++; 8725 count++;
8711 numchars--; 8726 numchars--;
8712 } 8727 }
8713 } 8728 }
8714 8729
8715 parse_button (msg.msg.message, &button, &up); 8730 parse_button (msg.msg.message, HIWORD (msg.msg.wParam),
8716 8731 &button, &up);
8732
8717 if (up) 8733 if (up)
8718 { 8734 {
8719 dpyinfo->grabbed &= ~ (1 << button); 8735 dpyinfo->grabbed &= ~ (1 << button);
8720 } 8736 }
8721 else 8737 else