branch: externals/xelb commit 41cca582c040fea69f61135634e0530621867802 Author: Chris Feng <chris.w.f...@gmail.com> Commit: Chris Feng <chris.w.f...@gmail.com>
Fix compiling issues * util/xcb-ewmh.el, util/xcb-icccm.el: eliminate compile warnings by defining atom variables at compile time * xcb.el: `xcb:debug-on' should be used just in this file --- util/xcb-ewmh.el | 188 +++++++++++++++++++++++++++-------------------------- util/xcb-icccm.el | 32 +++++---- xcb.el | 2 +- 3 files changed, 115 insertions(+), 107 deletions(-) diff --git a/util/xcb-ewmh.el b/util/xcb-ewmh.el index 84161ee..3295baa 100644 --- a/util/xcb-ewmh.el +++ b/util/xcb-ewmh.el @@ -47,98 +47,102 @@ ;;;; EWMH Atoms -(defconst xcb:ewmh:-atoms ;_NET_WM_CM_Sn are left out - '(;; Root Window Properties (and Related Messages) - _NET_SUPPORTED - _NET_CLIENT_LIST - _NET_CLIENT_LIST_STACKING - _NET_NUMBER_OF_DESKTOPS - _NET_DESKTOP_GEOMETRY - _NET_DESKTOP_VIEWPORT - _NET_CURRENT_DESKTOP - _NET_DESKTOP_NAMES - _NET_ACTIVE_WINDOW - _NET_WORKAREA - _NET_SUPPORTING_WM_CHECK - _NET_VIRTUAL_ROOTS - _NET_DESKTOP_LAYOUT - _NET_SHOWING_DESKTOP - ;; Other Root Window Messages - _NET_CLOSE_WINDOW - _NET_MOVERESIZE_WINDOW - _NET_WM_MOVERESIZE - _NET_RESTACK_WINDOW - _NET_REQUEST_FRAME_EXTENTS - ;; Application Window Properties - _NET_WM_NAME - _NET_WM_VISIBLE_NAME - _NET_WM_ICON_NAME - _NET_WM_VISIBLE_ICON_NAME - _NET_WM_DESKTOP - _NET_WM_WINDOW_TYPE - _NET_WM_STATE - _NET_WM_ALLOWED_ACTIONS - _NET_WM_STRUT - _NET_WM_STRUT_PARTIAL - _NET_WM_ICON_GEOMETRY - _NET_WM_ICON - _NET_WM_PID - _NET_WM_HANDLED_ICONS - _NET_WM_USER_TIME - _NET_WM_USER_TIME_WINDOW - _NET_FRAME_EXTENTS - _NET_WM_OPAQUE_REGION - _NET_WM_BYPASS_COMPOSITOR - ;; Window Manager Protocols - _NET_WM_PING - _NET_WM_SYNC_REQUEST - _NET_WM_SYNC_REQUEST_COUNTER - _NET_WM_FULLSCREEN_MONITORS - ;; Other Properties - _NET_WM_FULL_PLACEMENT - ;; _NET_WM_WINDOW_TYPE hint - _NET_WM_WINDOW_TYPE_DESKTOP - _NET_WM_WINDOW_TYPE_DOCK - _NET_WM_WINDOW_TYPE_TOOLBAR - _NET_WM_WINDOW_TYPE_MENU - _NET_WM_WINDOW_TYPE_UTILITY - _NET_WM_WINDOW_TYPE_SPLASH - _NET_WM_WINDOW_TYPE_DIALOG - _NET_WM_WINDOW_TYPE_DROPDOWN_MENU - _NET_WM_WINDOW_TYPE_POPUP_MENU - _NET_WM_WINDOW_TYPE_TOOLTIP - _NET_WM_WINDOW_TYPE_NOTIFICATION - _NET_WM_WINDOW_TYPE_COMBO - _NET_WM_WINDOW_TYPE_DND - _NET_WM_WINDOW_TYPE_NORMAL - ;; _NET_WM_STATE hint - _NET_WM_STATE_MODAL - _NET_WM_STATE_STICKY - _NET_WM_STATE_MAXIMIZED_VERT - _NET_WM_STATE_MAXIMIZED_HORZ - _NET_WM_STATE_SHADED - _NET_WM_STATE_SKIP_TASKBAR - _NET_WM_STATE_SKIP_PAGER - _NET_WM_STATE_HIDDEN - _NET_WM_STATE_FULLSCREEN - _NET_WM_STATE_ABOVE - _NET_WM_STATE_BELOW - _NET_WM_STATE_DEMANDS_ATTENTION - _NET_WM_STATE_FOCUSED - ;; _NET_WM_ACTION hint - _NET_WM_ACTION_MOVE - _NET_WM_ACTION_RESIZE - _NET_WM_ACTION_MINIMIZE - _NET_WM_ACTION_SHADE - _NET_WM_ACTION_STICK - _NET_WM_ACTION_MAXIMIZE_HORZ - _NET_WM_ACTION_MAXIMIZE_VERT - _NET_WM_ACTION_FULLSCREEN - _NET_WM_ACTION_CHANGE_DESKTOP - _NET_WM_ACTION_CLOSE - _NET_WM_ACTION_ABOVE - _NET_WM_ACTION_BELOW) - "EWMH atoms.") +(eval-and-compile + (defconst xcb:ewmh:-atoms ;_NET_WM_CM_Sn are left out + '( ;; Root Window Properties (and Related Messages) + _NET_SUPPORTED + _NET_CLIENT_LIST + _NET_CLIENT_LIST_STACKING + _NET_NUMBER_OF_DESKTOPS + _NET_DESKTOP_GEOMETRY + _NET_DESKTOP_VIEWPORT + _NET_CURRENT_DESKTOP + _NET_DESKTOP_NAMES + _NET_ACTIVE_WINDOW + _NET_WORKAREA + _NET_SUPPORTING_WM_CHECK + _NET_VIRTUAL_ROOTS + _NET_DESKTOP_LAYOUT + _NET_SHOWING_DESKTOP + ;; Other Root Window Messages + _NET_CLOSE_WINDOW + _NET_MOVERESIZE_WINDOW + _NET_WM_MOVERESIZE + _NET_RESTACK_WINDOW + _NET_REQUEST_FRAME_EXTENTS + ;; Application Window Properties + _NET_WM_NAME + _NET_WM_VISIBLE_NAME + _NET_WM_ICON_NAME + _NET_WM_VISIBLE_ICON_NAME + _NET_WM_DESKTOP + _NET_WM_WINDOW_TYPE + _NET_WM_STATE + _NET_WM_ALLOWED_ACTIONS + _NET_WM_STRUT + _NET_WM_STRUT_PARTIAL + _NET_WM_ICON_GEOMETRY + _NET_WM_ICON + _NET_WM_PID + _NET_WM_HANDLED_ICONS + _NET_WM_USER_TIME + _NET_WM_USER_TIME_WINDOW + _NET_FRAME_EXTENTS + _NET_WM_OPAQUE_REGION + _NET_WM_BYPASS_COMPOSITOR + ;; Window Manager Protocols + _NET_WM_PING + _NET_WM_SYNC_REQUEST + _NET_WM_SYNC_REQUEST_COUNTER + _NET_WM_FULLSCREEN_MONITORS + ;; Other Properties + _NET_WM_FULL_PLACEMENT + ;; _NET_WM_WINDOW_TYPE hint + _NET_WM_WINDOW_TYPE_DESKTOP + _NET_WM_WINDOW_TYPE_DOCK + _NET_WM_WINDOW_TYPE_TOOLBAR + _NET_WM_WINDOW_TYPE_MENU + _NET_WM_WINDOW_TYPE_UTILITY + _NET_WM_WINDOW_TYPE_SPLASH + _NET_WM_WINDOW_TYPE_DIALOG + _NET_WM_WINDOW_TYPE_DROPDOWN_MENU + _NET_WM_WINDOW_TYPE_POPUP_MENU + _NET_WM_WINDOW_TYPE_TOOLTIP + _NET_WM_WINDOW_TYPE_NOTIFICATION + _NET_WM_WINDOW_TYPE_COMBO + _NET_WM_WINDOW_TYPE_DND + _NET_WM_WINDOW_TYPE_NORMAL + ;; _NET_WM_STATE hint + _NET_WM_STATE_MODAL + _NET_WM_STATE_STICKY + _NET_WM_STATE_MAXIMIZED_VERT + _NET_WM_STATE_MAXIMIZED_HORZ + _NET_WM_STATE_SHADED + _NET_WM_STATE_SKIP_TASKBAR + _NET_WM_STATE_SKIP_PAGER + _NET_WM_STATE_HIDDEN + _NET_WM_STATE_FULLSCREEN + _NET_WM_STATE_ABOVE + _NET_WM_STATE_BELOW + _NET_WM_STATE_DEMANDS_ATTENTION + _NET_WM_STATE_FOCUSED + ;; _NET_WM_ACTION hint + _NET_WM_ACTION_MOVE + _NET_WM_ACTION_RESIZE + _NET_WM_ACTION_MINIMIZE + _NET_WM_ACTION_SHADE + _NET_WM_ACTION_STICK + _NET_WM_ACTION_MAXIMIZE_HORZ + _NET_WM_ACTION_MAXIMIZE_VERT + _NET_WM_ACTION_FULLSCREEN + _NET_WM_ACTION_CHANGE_DESKTOP + _NET_WM_ACTION_CLOSE + _NET_WM_ACTION_ABOVE + _NET_WM_ACTION_BELOW) + "EWMH atoms.") + + (dolist (atom xcb:ewmh:-atoms) + (eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil)))) (cl-defmethod xcb:ewmh:init ((obj xcb:connection)) "Initialize EWMH module. diff --git a/util/xcb-icccm.el b/util/xcb-icccm.el index 3608c1b..0c5af72 100644 --- a/util/xcb-icccm.el +++ b/util/xcb-icccm.el @@ -44,10 +44,14 @@ ;;;; ICCCM atoms -(defconst xcb:icccm:-atoms - '(UTF8_STRING COMPOUND_TEXT TEXT C_STRING - WM_PROTOCOLS WM_TAKE_FOCUS WM_DELETE_WINDOW WM_STATE) - "Atoms involved in ICCCM.") +(eval-and-compile + (defconst xcb:icccm:-atoms + '(UTF8_STRING COMPOUND_TEXT TEXT C_STRING + WM_PROTOCOLS WM_TAKE_FOCUS WM_DELETE_WINDOW WM_STATE) + "Atoms involved in ICCCM.") + + (dolist (atom xcb:icccm:-atoms) + (eval `(defvar ,(intern (concat "xcb:Atom:" (symbol-name atom))) nil)))) (cl-defmethod xcb:icccm:init ((obj xcb:connection)) "Initialize ICCCM module. @@ -60,16 +64,16 @@ This method must be called before using any other method in this module." The value of these atoms will be available in `xcb:Atom' namespace." (dolist (atom atoms) - (let ((name (symbol-name atom)) - reply) - (unless (boundp atom) - (setq reply (xcb:+request-unchecked+reply obj - (make-instance 'xcb:InternAtom - :only-if-exists 0 - :name-len (length name) - :name name))) - (eval `(defvar ,(intern (concat "xcb:Atom:" name)) ;add prefix - (slot-value ,reply 'atom))))))) + (let* ((name (symbol-name atom)) + (var-name (intern (concat "xcb:Atom:" name)))) + (unless (and (boundp var-name) (symbol-value var-name)) + (set var-name + (slot-value (xcb:+request-unchecked+reply obj + (make-instance 'xcb:InternAtom + :only-if-exists 0 + :name-len (length name) + :name name)) + 'atom)))))) ;;;; Client message diff --git a/xcb.el b/xcb.el index 4735406..88ff1fb 100644 --- a/xcb.el +++ b/xcb.el @@ -60,7 +60,7 @@ (require 'xcb-xproto) -(eval-and-compile +(eval-when-compile (defvar xcb:debug-on nil "Non-nil to turn on debug.")) (defmacro xcb:-log (format-string &rest args)