From 861a3f563b80301eb2ffe604e624f823478ae0c7 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 31 Aug 2009 00:24:25 -0400 Subject: [PATCH] x11.events, ui.backend.x11: actually make it work --- basis/ui/backend/x11/x11.factor | 5 +++-- basis/x11/events/events.factor | 30 +++++++++++++++--------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/basis/ui/backend/x11/x11.factor b/basis/ui/backend/x11/x11.factor index fcaf0e2a70..978fed6bf8 100755 --- a/basis/ui/backend/x11/x11.factor +++ b/basis/ui/backend/x11/x11.factor @@ -49,7 +49,8 @@ PIXEL-FORMAT-ATTRIBUTE-TABLE: glx-visual { $ GLX_USE_GL $ GLX_RGBA } H{ M: x11-ui-backend (make-pixel-format) [ drop dpy get scr get ] dip - >glx-visual-int-array glXChooseVisual ; + >glx-visual-int-array glXChooseVisual + XVisualInfo memory>struct ; M: x11-ui-backend (free-pixel-format) handle>> XFree ; @@ -223,7 +224,7 @@ M: world client-event ] [ wait-for-display wait-event ] if ; M: x11-ui-backend do-events - wait-event dup window>> window dup + wait-event dup XAnyEvent>> window>> window dup [ handle-event ] [ 2drop ] if ; : x-clipboard@ ( gadget clipboard -- prop win ) diff --git a/basis/x11/events/events.factor b/basis/x11/events/events.factor index a24f6a45aa..febbbfa135 100644 --- a/basis/x11/events/events.factor +++ b/basis/x11/events/events.factor @@ -51,21 +51,21 @@ GENERIC: client-event ( event window -- ) over wheel? [ 2drop ] [ button-up-event ] if ; : handle-event ( event window -- ) - over type>> { - { Expose [ XExposeEvent>> expose-event ] } - { ConfigureNotify [ XConfigureEvent>> configure-event ] } - { ButtonPress [ XButtonEvent>> button-down-event$ ] } - { ButtonRelease [ XButtonEvent>> button-up-event$ ] } - { EnterNotify [ XCrossingEvent>> enter-event ] } - { LeaveNotify [ XCrossingEvent>> leave-event ] } - { MotionNotify [ XMotionEvent>> motion-event ] } - { KeyPress [ XKeyEvent>> key-down-event ] } - { KeyRelease [ XKeyEvent>> key-up-event ] } - { FocusIn [ XFocusChangeEvent>> focus-in-event ] } - { FocusOut [ XFocusChangeEvent>> focus-out-event ] } - { SelectionNotify [ XSelectionEvent>> selection-notify-event ] } - { SelectionRequest [ XSelectionRequestEvent>> selection-request-event ] } - { ClientMessage [ XClientMessageEvent>> client-event ] } + swap dup XAnyEvent>> type>> { + { Expose [ XExposeEvent>> swap expose-event ] } + { ConfigureNotify [ XConfigureEvent>> swap configure-event ] } + { ButtonPress [ XButtonEvent>> swap button-down-event$ ] } + { ButtonRelease [ XButtonEvent>> swap button-up-event$ ] } + { EnterNotify [ XCrossingEvent>> swap enter-event ] } + { LeaveNotify [ XCrossingEvent>> swap leave-event ] } + { MotionNotify [ XMotionEvent>> swap motion-event ] } + { KeyPress [ XKeyEvent>> swap key-down-event ] } + { KeyRelease [ XKeyEvent>> swap key-up-event ] } + { FocusIn [ XFocusChangeEvent>> swap focus-in-event ] } + { FocusOut [ XFocusChangeEvent>> swap focus-out-event ] } + { SelectionNotify [ XSelectionEvent>> swap selection-notify-event ] } + { SelectionRequest [ XSelectionRequestEvent>> swap selection-request-event ] } + { ClientMessage [ XClientMessageEvent>> swap client-event ] } [ 3drop ] } case ; -- 2.34.1