Bootstrap fix, got close box working
parent
d22a142935
commit
d9977d36f8
|
|
@ -129,7 +129,7 @@ V{ } clone hand-buttons set-global
|
|||
: ui-step ( -- )
|
||||
do-timers
|
||||
[ layout-queued ] make-hash
|
||||
[ nip [ draw-world ] when* ] hash-each
|
||||
[ nip dup world-handle [ draw-world ] when ] hash-each
|
||||
10 sleep ;
|
||||
|
||||
: close-world ( world -- )
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
! Copyright (C) 2005, 2006 Slava Pestov.
|
||||
! See http://factor.sf.net/license.txt for BSD license.
|
||||
IN: gadgets-listener
|
||||
USING: arrays compiler gadgets gadgets-editors gadgets-labels
|
||||
USING: arrays gadgets gadgets-editors gadgets-labels
|
||||
gadgets-layouts gadgets-panes gadgets-scrolling
|
||||
gadgets-splitters gadgets-theme generic hashtables
|
||||
inference inspector io jedit kernel listener lists math
|
||||
namespaces parser prettyprint sequences shells threads words
|
||||
help ;
|
||||
io jedit kernel listener lists math
|
||||
namespaces parser prettyprint sequences threads words ;
|
||||
|
||||
TUPLE: listener-gadget pane stack status ;
|
||||
|
||||
|
|
@ -49,12 +48,6 @@ TUPLE: listener-gadget pane stack status ;
|
|||
|
||||
: <stack-bar> ( -- gadget ) <shelf> dup status-theme ;
|
||||
|
||||
: <bottom-bar> ( -- gadget status )
|
||||
<status-bar> [
|
||||
<shelf> dup stack-bar set-global
|
||||
2array make-pile 1 over set-pack-fill
|
||||
] keep ;
|
||||
|
||||
: <scroller> ( -- gadget )
|
||||
<input-pane> dup pane set-global <scroller> ;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,13 +80,13 @@ M: world key-down-event ( event world -- )
|
|||
M: world key-up-event ( event world -- ) 2drop ;
|
||||
|
||||
: close-box? ( event -- )
|
||||
dup XClientMessageEvent-type "WM_PROTOCOLS" x-atom =
|
||||
dup XClientMessageEvent-message_type "WM_PROTOCOLS" x-atom =
|
||||
swap XClientMessageEvent-data "WM_DELETE_WINDOW" x-atom =
|
||||
and ;
|
||||
|
||||
M: world client-event ( event world -- )
|
||||
swap close-box? [
|
||||
dup close-world world-handle destroy-window*
|
||||
dup world-handle first >r close-world r> destroy-window*
|
||||
] [
|
||||
drop
|
||||
] if ;
|
||||
|
|
|
|||
|
|
@ -41,10 +41,14 @@ USING: alien hashtables kernel math namespaces sequences ;
|
|||
: destroy-window* ( win -- )
|
||||
dup windows get remove-hash destroy-window ;
|
||||
|
||||
: set-closable ( win -- )
|
||||
dpy get swap "WM_DELETE_WINDOW" x-atom <Atom> 1
|
||||
XSetWMProtocols drop ;
|
||||
|
||||
: map-window ( win -- ) dpy get swap XMapWindow drop ;
|
||||
|
||||
: map-window* ( world win -- )
|
||||
[ windows get set-hash ] keep map-window ;
|
||||
dup set-closable [ windows get set-hash ] keep map-window ;
|
||||
|
||||
: glx-window* ( world dim -- win context )
|
||||
glx-window >r [ map-window* ] keep r> ;
|
||||
|
|
|
|||
|
|
@ -51,12 +51,14 @@ TYPEDEF: void* Window**
|
|||
: <Window> <XID> ;
|
||||
: <Drawable> <XID> ;
|
||||
: <KeySym> <XID> ;
|
||||
: <Atom> <ulong> ;
|
||||
|
||||
: *ulong *uint ;
|
||||
: *XID *ulong ;
|
||||
: *Window *XID ;
|
||||
: *Drawable *XID ;
|
||||
: *KeySym *XID ;
|
||||
: *Atom *ulong ;
|
||||
!
|
||||
! 2 - Display Functions
|
||||
!
|
||||
|
|
|
|||
Loading…
Reference in New Issue