Skip to content

Commit 8cfcc7a

Browse files
committed
CHANGE: moved the event port location from system/view/event-port to system/ports/event
1 parent 0401ce5 commit 8cfcc7a

File tree

6 files changed

+32
-31
lines changed

6 files changed

+32
-31
lines changed

src/boot/sysobj.reb

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,12 @@ schemes: object []
189189

190190
ports: object [
191191
wait-list: [] ; List of ports to add to 'wait
192+
system: ; Port for system events
193+
event: ; Port for GUI
192194
input: ; Port for user input.
193195
output: ; Port for user output
194196
echo: ; Port for echoing output
195197
mail: ; Port for sending and receiving emails
196-
system: ; Port for system events
197198
callback: none ; Port for callback events
198199
; serial: none ; serial device name block
199200
]
@@ -433,7 +434,6 @@ standard: object [
433434
view: object [
434435
screen-gob: none
435436
handler: none
436-
event-port: none
437437
metrics: construct [
438438
screen-size:
439439
border-size:

src/core/t-event.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@
218218
case SYM_PORT:
219219
// Most events are for the GUI:
220220
if (IS_EVENT_MODEL(value, EVM_GUI)) {
221-
*val = *Get_System(SYS_VIEW, VIEW_EVENT_PORT);
221+
*val = *Get_System(SYS_PORTS, PORTS_EVENT);
222222
}
223223
// Event holds a port:
224224
else if (IS_EVENT_MODEL(value, EVM_PORT) || IS_EVENT_MODEL(value, EVM_MIDI)) {
@@ -443,7 +443,7 @@
443443
case EF_PORT:
444444
// Most events are for the GUI:
445445
if (GET_FLAG(VAL_EVENT_FLAGS(value), EVF_NO_REQ))
446-
*D_RET = *Get_System(SYS_VIEW, VIEW_EVENT_PORT);
446+
*D_RET = *Get_System(SYS_PORTS, PORTS_EVENT);
447447
else {
448448
req = VAL_EVENT_REQ(value);
449449
if (!req || !req->port) goto is_none;

src/include/reb-event.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ enum {
7474
EVM_DEVICE, // I/O request holds the port pointer
7575
EVM_PORT, // event holds port pointer
7676
EVM_OBJECT, // event holds object frame pointer
77-
EVM_GUI, // GUI event uses system/view/event/port
77+
EVM_GUI, // GUI event uses system/ports/event
7878
EVM_CALLBACK, // Callback event uses system/ports/callback port
7979
EVM_MIDI, // event holds midi port pointer
8080
EVM_CONSOLE, // native console events

src/mezz/sys-ports.reb

+1
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,7 @@ init-schemes: func [
546546

547547

548548
system/ports/system: open [scheme: 'system]
549+
system/ports/event: open [scheme: 'event]
549550
system/ports/input:
550551
system/ports/output: open [scheme: 'console]
551552
system/ports/callback: open [scheme: 'callback]

src/mezz/view-funcs.reb

+23-23
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ view: func [
8989
]
9090
; Set up default handler...
9191
if all [
92-
empty? system/view/event-port/extra/handlers ; ...if there is no other handler
92+
empty? system/ports/event/extra/handlers ; ...if there is no other handler
9393
not opts/handler ; ...and user did not provide one
9494
][
9595
handle-events [
@@ -189,7 +189,7 @@ handle-events: func [
189189
/local sys-hand
190190
][
191191
handler: make base-handler handler
192-
sys-hand: system/view/event-port/extra/handlers
192+
sys-hand: system/ports/event/extra/handlers
193193
; First check if there is not any handler with such a name...
194194
forall sys-hand [
195195
if handler/name = sys-hand/1/name [
@@ -214,15 +214,15 @@ unhandle-events: func [
214214
"Removes a handler from the view event system."
215215
handler [object!]
216216
][
217-
remove find system/view/event-port/extra/handlers handler
217+
remove find system/ports/event/extra/handlers handler
218218
exit
219219
]
220220

221221
handled-events?: func [
222222
"Returns event handler object matching a given name."
223223
name
224224
][
225-
foreach hand system/view/event-port/extra/handlers [
225+
foreach hand system/ports/event/extra/handlers [
226226
if hand/name = name [return hand]
227227
]
228228
none
@@ -231,7 +231,7 @@ handled-events?: func [
231231
do-events: func [
232232
"Waits for window events. Returns when all windows are closed."
233233
][
234-
wait system/view/event-port
234+
wait system/ports/event
235235
]
236236

237237
init-view-system: func [
@@ -246,28 +246,28 @@ init-view-system: func [
246246
set in system/view/metrics w gui-metric w
247247
]
248248

249-
; Already initialized?
250-
if system/view/event-port [exit]
249+
ep: system/ports/event
251250

252-
; Open the event port:
253-
ep: open [scheme: 'event]
254-
system/view/event-port: ep
251+
unless ep/extra [
252+
; Create block of event handlers:
253+
ep/extra: object [handlers: copy []]
255254

256-
; Create block of event handlers:
257-
ep/extra: object [handlers: copy []]
258-
259-
; Global event handler for view system:
260-
ep/awake: func [event /local h] [
261-
h: event/port/extra/handlers
262-
while [ ; (no binding needed)
263-
all [event not tail? h]
264-
][
265-
; Handlers should return event in order to continue.
266-
event: h/1/handler event
267-
h: next h
255+
; Global event handler for view system:
256+
ep/awake: func [event /local h] [
257+
h: event/port/extra/handlers
258+
while [ ; (no binding needed)
259+
all [event not tail? h]
260+
][
261+
; Handlers should return event in order to continue.
262+
event: h/1/handler event
263+
h: next h
264+
]
265+
tail? system/view/screen-gob
268266
]
269-
tail? system/view/screen-gob
270267
]
268+
269+
init-top-window:
270+
init-view-system: 'done
271271
]
272272

273273
init-view-system

src/tests/units/event-test.r3

+3-3
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ Rebol [
6363
e/type = 'custom
6464
e/code = 1
6565
]
66-
if system/view/event-port [
66+
if system/ports/event [
6767
; using port in the custom event
6868
--assert all [
69-
event? e: try [make event! [type: 'custom code: 2 port: system/view/event-port]]
69+
event? e: try [make event! [type: 'custom code: 2 port: system/ports/event]]
7070
e/type = 'custom
7171
e/code = 2
72-
e/port = system/view/event-port
72+
e/port = system/ports/event
7373
]
7474
]
7575

0 commit comments

Comments
 (0)