|
210 | 210 | *val = *Get_System(SYS_VIEW, VIEW_EVENT_PORT);
|
211 | 211 | }
|
212 | 212 | // Event holds a port:
|
213 |
| - else if (IS_EVENT_MODEL(value, EVM_PORT) || IS_EVENT_MODEL(value, EVM_MIDI)) { |
| 213 | + else if (IS_PORT(value) && (IS_EVENT_MODEL(value, EVM_PORT) || IS_EVENT_MODEL(value, EVM_MIDI))) { |
214 | 214 | SET_PORT(val, VAL_EVENT_SER(value));
|
215 | 215 | }
|
216 | 216 | // Event holds an object:
|
|
239 | 239 | break;
|
240 | 240 | }
|
241 | 241 | }
|
242 |
| - else if (IS_EVENT_MODEL(value, EVM_MIDI)) |
243 |
| - goto is_none; |
244 |
| - |
245 |
| - return FALSE; |
| 242 | + goto is_none; |
246 | 243 |
|
247 | 244 | case SYM_OFFSET:
|
248 |
| - if (VAL_EVENT_TYPE(value) == EVT_KEY || VAL_EVENT_TYPE(value) == EVT_KEY_UP) |
249 |
| - goto is_none; |
250 |
| - VAL_SET(val, REB_PAIR); |
251 |
| - VAL_PAIR_X(val) = (REBD32)VAL_EVENT_X(value); |
252 |
| - VAL_PAIR_Y(val) = (REBD32)VAL_EVENT_Y(value); |
| 245 | + if (IS_EVENT_MODEL(value, EVM_GUI) && VAL_EVENT_TYPE(value) != EVT_KEY && VAL_EVENT_TYPE(value) != EVT_KEY_UP) { |
| 246 | + VAL_SET(val, REB_PAIR); |
| 247 | + VAL_PAIR_X(val) = (REBD32)VAL_EVENT_X(value); |
| 248 | + VAL_PAIR_Y(val) = (REBD32)VAL_EVENT_Y(value); |
| 249 | + } else goto is_none; |
253 | 250 | break;
|
254 | 251 |
|
255 | 252 | case SYM_KEY:
|
|
263 | 260 | *val = *VAL_BLK_SKIP(arg, n);
|
264 | 261 | break;
|
265 | 262 | }
|
266 |
| - return FALSE; |
| 263 | + goto is_none; |
267 | 264 | }
|
268 | 265 | SET_CHAR(val, n);
|
269 | 266 | break;
|
|
284 | 281 | Init_Word(arg, SYM_SHIFT);
|
285 | 282 | }
|
286 | 283 | Set_Block(val, ser);
|
287 |
| - } else SET_NONE(val); |
| 284 | + } else goto is_none; |
288 | 285 | break;
|
289 | 286 |
|
290 | 287 | case SYM_CODE:
|
@@ -522,8 +519,7 @@ enum rebol_event_fields {
|
522 | 519 | mold->indent++;
|
523 | 520 |
|
524 | 521 | for (field = 0; fields[field]; field++) {
|
525 |
| - Get_Event_Var(value, fields[field], &val); |
526 |
| - if (!IS_NONE(&val)) { |
| 522 | + if (Get_Event_Var(value, fields[field], &val) && !IS_NONE(&val)) { |
527 | 523 | New_Indented_Line(mold);
|
528 | 524 | Append_UTF8(mold->series, Get_Sym_Name(fields[field]), -1);
|
529 | 525 | Append_Bytes(mold->series, ": ");
|
|
0 commit comments