Mercurial > emacs
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 |