Implemented the set-fullscreen* hook for the x11 backend.

I doubt that fullscreen* can be implemented for x11, so it might need to be removed or always return f.
db4
Matthew Willis 2008-02-11 22:52:02 -08:00
parent 9be4bf0030
commit af11e1673b
2 changed files with 18 additions and 0 deletions

View File

@ -217,6 +217,19 @@ M: x-clipboard paste-clipboard
M: x11-ui-backend set-title ( string world -- )
world-handle x11-handle-window swap dpy get -rot
3dup set-title-old set-title-new ;
M: x11-ui-backend set-fullscreen* ( ? world -- )
world-handle x11-handle-window "XClientMessageEvent" <c-object>
tuck set-XClientMessageEvent-window
swap _NET_WM_STATE_ADD _NET_WM_STATE_REMOVE ?
over set-XClientMessageEvent-data0
ClientMessage over set-XClientMessageEvent-type
dpy get over set-XClientMessageEvent-display
"_NET_WM_STATE" x-atom over set-XClientMessageEvent-message_type
32 over set-XClientMessageEvent-format
"_NET_WM_STATE_FULLSCREEN" x-atom over set-XClientMessageEvent-data1
>r dpy get root get 0 SubstructureNotifyMask r> XSendEvent drop ;
M: x11-ui-backend (open-window) ( world -- )
dup gadget-window

View File

@ -402,3 +402,8 @@ TYPEDEF: uchar KeyCode
: LSBFirst 0 ;
: MSBFirst 1 ;
! *****************************************************************
! * EXTENDED WINDOW MANAGER HINTS
! *****************************************************************
C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;