Mercurial > emacs
comparison src/xmenu.c @ 10799:1745fca9370a
(menubar_selection_callback): frame_or_window field of a menu-bar event now
includes both the frame and the magic cookie.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Wed, 22 Feb 1995 06:07:20 +0000 |
parents | 2829c9840b0e |
children | b7824d6a6b36 |
comparison
equal
deleted
inserted
replaced
10798:6f71ef20581c | 10799:1745fca9370a |
---|---|
1102 prefix = subprefix_stack[--submenu_depth]; | 1102 prefix = subprefix_stack[--submenu_depth]; |
1103 i++; | 1103 i++; |
1104 } | 1104 } |
1105 else if (EQ (XVECTOR (vector)->contents[i], Qt)) | 1105 else if (EQ (XVECTOR (vector)->contents[i], Qt)) |
1106 { | 1106 { |
1107 prefix | 1107 prefix = XVECTOR (vector)->contents[i + MENU_ITEMS_PANE_PREFIX]; |
1108 = XVECTOR (vector)->contents[i + MENU_ITEMS_PANE_PREFIX]; | |
1109 i += MENU_ITEMS_PANE_LENGTH; | 1108 i += MENU_ITEMS_PANE_LENGTH; |
1110 } | 1109 } |
1111 else | 1110 else |
1112 { | 1111 { |
1113 entry | 1112 entry = XVECTOR (vector)->contents[i + MENU_ITEMS_ITEM_VALUE]; |
1114 = XVECTOR (vector)->contents[i + MENU_ITEMS_ITEM_VALUE]; | |
1115 if ((int) client_data == i) | 1113 if ((int) client_data == i) |
1116 { | 1114 { |
1117 int j; | 1115 int j; |
1118 struct input_event buf; | 1116 struct input_event buf; |
1119 | 1117 Lisp_Object frame; |
1118 | |
1119 XSETFRAME (frame, f); | |
1120 buf.kind = menu_bar_event; | 1120 buf.kind = menu_bar_event; |
1121 buf.frame_or_window = Qmenu_bar; | 1121 buf.frame_or_window = Fcons (frame, Qmenu_bar); |
1122 kbd_buffer_store_event (&buf); | 1122 kbd_buffer_store_event (&buf); |
1123 | 1123 |
1124 for (j = 0; j < submenu_depth; j++) | 1124 for (j = 0; j < submenu_depth; j++) |
1125 if (!NILP (subprefix_stack[j])) | 1125 if (!NILP (subprefix_stack[j])) |
1126 { | 1126 { |
1127 buf.kind = menu_bar_event; | 1127 buf.kind = menu_bar_event; |
1128 buf.frame_or_window = subprefix_stack[j]; | 1128 buf.frame_or_window = Fcons (frame, subprefix_stack[j]); |
1129 kbd_buffer_store_event (&buf); | 1129 kbd_buffer_store_event (&buf); |
1130 } | 1130 } |
1131 | 1131 |
1132 if (!NILP (prefix)) | 1132 if (!NILP (prefix)) |
1133 { | 1133 { |
1134 buf.kind = menu_bar_event; | 1134 buf.kind = menu_bar_event; |
1135 buf.frame_or_window = prefix; | 1135 buf.frame_or_window = Fcons (frame, prefix); |
1136 kbd_buffer_store_event (&buf); | 1136 kbd_buffer_store_event (&buf); |
1137 } | 1137 } |
1138 | 1138 |
1139 buf.kind = menu_bar_event; | 1139 buf.kind = menu_bar_event; |
1140 buf.frame_or_window = entry; | 1140 buf.frame_or_window = Fcons (frame, entry); |
1141 kbd_buffer_store_event (&buf); | 1141 kbd_buffer_store_event (&buf); |
1142 | 1142 |
1143 return; | 1143 return; |
1144 } | 1144 } |
1145 i += MENU_ITEMS_ITEM_LENGTH; | 1145 i += MENU_ITEMS_ITEM_LENGTH; |