;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\312\313\314\315\316DD\317\306\303\320\321&\210\312\322\314\315\323DD\324\306\303\320\321&\210\312\325\314\315\326DD\327\306\303\320\315&\207" [require cl-lib custom-declare-group posframe nil "Pop a posframe (just a frame) at point" :group lisp :prefix "posframe-" custom-declare-variable posframe-mouse-banish funcall function #[0 "\301=?\207" [system-type darwin] 2] "Mouse banish.\n\nwhen this variable is t, mouse will be moved to (0 , 0).\nwhen this variable is a cons like (x . y), mouse will be moved\nto (x , y).\n\nThis option is used to solve the problem of child frame getting\nfocus, with the help of `posframe--redirect-posframe-focus',\nsetting this option to `nil' will work well in *most* cases." :type boolean posframe-inhibit-double-buffering #[0 "\300\207" [nil] 1] "Set the posframe's frame-parameter: inhibit-double-buffering." posframe-arghandler #[0 "\300\207" [posframe-arghandler-default] 1] "A function used to handle posframe-show's argument.\n\nUsers can use this feature to set the default value of\nposframe-show's arguments."] 8) #@26 Record posframe's frame. (defvar posframe--frame nil (#$ . 1537)) (make-variable-buffer-local 'posframe--frame) #@53 Record the last pixel position of posframe's frame. (defvar posframe--last-posframe-pixel-position nil (#$ . 1655)) (make-variable-buffer-local 'posframe--last-posframe-pixel-position) #@43 Record the last size of posframe's frame. (defvar posframe--last-posframe-size nil (#$ . 1846)) (make-variable-buffer-local 'posframe--last-posframe-size) #@53 Record the last displayed size of posframe's frame. (defvar posframe--last-posframe-displayed-size nil (#$ . 2007)) (make-variable-buffer-local 'posframe--last-posframe-displayed-size) #@50 Record the last size of posframe's parent-frame. (defvar posframe--last-parent-frame-size nil (#$ . 2198)) (make-variable-buffer-local 'posframe--last-parent-frame-size) #@34 Record the last poshandler info. (defvar posframe--last-poshandler-info nil (#$ . 2374)) (make-variable-buffer-local 'posframe--last-poshandler-info) #@35 Record the last font height info. (defvar posframe--last-font-height-info nil (#$ . 2530)) (make-variable-buffer-local 'posframe--last-font-height-info) #@122 Record the last arguments of `posframe--create-posframe'. If these args have changed, posframe will recreate its frame. (defvar posframe--last-args nil (#$ . 2690)) (make-variable-buffer-local 'posframe--last-args) #@68 Record the timer to deal with timeout argument of `posframe-show'. (defvar posframe--timeout-timer nil (#$ . 2912)) (make-variable-buffer-local 'posframe--timeout-timer) #@68 Record the timer to deal with refresh argument of `posframe-show'. (defvar posframe--refresh-timer nil (#$ . 3088)) (make-variable-buffer-local 'posframe--refresh-timer) #@46 Record initialize status of `posframe-show'. (defvar posframe--initialized-p nil (#$ . 3264)) (make-variable-buffer-local 'posframe--initialized-p) #@48 Record accept focus status of `posframe-show'. (defvar posframe--accept-focus nil (#$ . 3418)) (make-variable-buffer-local 'posframe--accept-focus) #@37 Timer used by hidehandler function. (defvar posframe-hidehandler-timer nil (#$ . 3572)) #@180 Value to bind `x-gtk-resize-child-frames' to. The value `resize-mode' only has effect on new child frames, so if you change it, call `posframe-delete-all' for it to take effect. (defvar posframe-gtk-resize-child-frames (byte-code "\303V\2057\304 \305\306\307#)\266\203\2057\310\311!\206\310\312!\211;\2051\313\305\306\307#)\266\203\262\2057\314\207" [emacs-major-version system-configuration-features inhibit-changing-match-data 26 "GTK3" nil t string-match getenv "XDG_CURRENT_DESKTOP" "DESKTOP_SESSION" "GNOME" resize-mode] 8) (#$ . 3667)) #@32 Test posframe workable status. (defalias 'posframe-workable-p #[0 "\303Y\205 \206\n\206\304 ??\207" [emacs-major-version noninteractive emacs-basic-display 26 display-graphic-p] 2 (#$ . 4233)]) #@355 Create and return a posframe child frame. This posframe's buffer is BUFFER-OR-NAME. (fn BUFFER-OR-NAME &key PARENT-FRAME FOREGROUND-COLOR BACKGROUND-COLOR LEFT-FRINGE RIGHT-FRINGE BORDER-WIDTH BORDER-COLOR INTERNAL-BORDER-WIDTH INTERNAL-BORDER-COLOR FONT KEEP-RATIO LINES-TRUNCATE OVERRIDE-PARAMETERS RESPECT-HEADER-LINE RESPECT-MODE-LINE ACCEPT-FOCUS) (defalias 'posframe--create-posframe #[385 "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"A@\306\314\"A@\306\315\"A@\306\316\"A@\306 \317\"A@\306\n\320\"A@\306 \321\"A@\306\f\322\"A@\306 \323\"A@\306\324\"A@\306\325\"A@\306\326\"A@\211\203\230\211@\327>\203\200\211AA\262\202m\330>A@\203\217\331\262\202m\332\333@\"\210\202m\210\f\206\237\334\f\206\245\334\f\206\260\n\206\260\334\f\206\267\n\335!\331\257\frq\210\336\303!\210\331\336\304!\210\337\336\305!\210\331\336\340!\210\331 \336\341!\210\331!\336\342!\210\331\"\336\343!\210\334#\336\344!\210\f$\336\345!\210\331%\336\346!\210\331&\336\347!\210\331'\336\350!\210( \204>\336\351!\210\331)\n\204J\336\352!\210\331*\353\354\355\331\356$\210\3574!\203_1\232\204\216\360!\210\336\361!\210\2111\336\362!\210\3312\336\363!\210\3313\336\364!\210\365\366 \205\211\367B\205\222\370B\205\233\371B\372\373B\374D\375\376!BB\377\201C?B\201D\201E\201F\201GB\201HB\201I\201J\201KB\201LB\201M\201N\201O\201P\201Q\201R\201S\201T\201U\201V\201W\201X\201Y\201Z\201[@B\201\\BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\"!4\203Z\201]\201^4#\210\201_\201`!\203Z\201]\201`4#\210\201a4!\n\204o\201b\351\201c#\210 \204~\201b\352\201c#\210\201d\"\210\201e\356\"\266\201f4\201g\334#\210\201h\201iA\"\203\256\336\201B!\210\331B\201f4\373#\2104+\266\210\207" [posframe-gtk-resize-child-frames x-gtk-resize-child-frames after-make-frame-functions display-line-numbers frame-title-format left-margin-width plist-member :parent-frame :foreground-color :background-color :left-fringe :right-fringe :border-width :border-color :internal-border-width :internal-border-color :font :keep-ratio :lines-truncate :override-parameters :respect-header-line :respect-mode-line :accept-focus (:parent-frame :foreground-color :background-color :left-fringe :right-fringe :border-width :border-color :internal-border-width :internal-border-color :font :keep-ratio :lines-truncate :override-parameters :respect-header-line :respect-mode-line :accept-focus :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:parent-frame :foreground-color :background-color :left-fringe :right-fringe :border-width :border-color :internal-border-width :internal-border-color :font :keep-ratio :lines-truncate :override-parameters :respect-header-line :respect-mode-line :accept-focus)" 0 get-buffer-create make-local-variable "" right-margin-width left-fringe-width right-fringe-width fringes-outside-margins truncate-lines cursor-type cursor-in-non-selected-windows show-trailing-whitespace posframe--accept-focus mode-line-format header-line-format add-hook kill-buffer-hook posframe-auto-delete t frame-live-p posframe-delete-frame posframe--last-args posframe--last-posframe-pixel-position posframe--last-posframe-size posframe--frame make-frame append foreground-color background-color font (title . "posframe") parent-frame keep-ratio posframe-buffer buffer-name (fullscreen) posframe-inhibit-double-buffering emacs-version tab-line-format no-accept-focus (min-width . 0) (min-height . 0) (border-width . 0) internal-border-width child-frame-border-width (vertical-scroll-bars) (horizontal-scroll-bars) left-fringe right-fringe (menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (line-spacing . 0) (unsplittable . t) (no-other-frame . t) (undecorated . t) (visibility) (cursor-type) (minibuffer) (width . 1) (height . 1) (no-special-glyphs . t) (skip-taskbar . t) inhibit-double-buffering ((desktop-dont-save . t)) set-face-background internal-border facep child-frame-border frame-root-window set-window-parameter none set-window-buffer set-window-dedicated-p set-frame-parameter tab-bar-lines version< "27.0"] 63 (#$ . 4441)]) #@96 The default value of `posframe-arghandler'. Return VALUE. (fn BUFFER-OR-NAME ARG-NAME VALUE) (defalias 'posframe-arghandler-default #[771 "\207" [] 4 (#$ . 8688)]) #@6524 Pop up a posframe and show STRING at POSITION. (1) POSITION POSITION can be: 1. An integer, meaning point position. 2. A cons of two integers, meaning absolute X and Y coordinates. 3. Other type, in which case the corresponding POSHANDLER should be provided. (2) POSHANDLER POSHANDLER is a function of one argument returning an actual position. Its argument is a plist of the following form: (:position xxx :poshandler xxx :font-height xxx :font-width xxx :posframe xxx :posframe-width xxx :posframe-height xxx :posframe-buffer xxx :parent-frame xxx :parent-window-left xxx :parent-window-top xxx :parent-frame-width xxx :parent-frame-height xxx :parent-window xxx :parent-window-width xxx :parent-window-height xxx :minibuffer-height xxx :mode-line-height xxx :header-line-height xxx :tab-line-height xxx :x-pixel-offset xxx :y-pixel-offset xxx) By default, poshandler is auto-selected based on the type of POSITION, but the selection can be overridden using the POSHANDLER argument. The builtin poshandler functions are listed below: 1. `posframe-poshandler-frame-center' 2. `posframe-poshandler-frame-top-center' 3. `posframe-poshandler-frame-top-left-corner' 4. `posframe-poshandler-frame-top-right-corner' 5. `posframe-poshandler-frame-bottom-center' 6. `posframe-poshandler-frame-bottom-left-corner' 7. `posframe-poshandler-frame-bottom-right-corner' 8. `posframe-poshandler-window-center' 9. `posframe-poshandler-window-top-center' 10. `posframe-poshandler-window-top-left-corner' 11. `posframe-poshandler-window-top-right-corner' 12. `posframe-poshandler-window-bottom-center' 13. `posframe-poshandler-window-bottom-left-corner' 14. `posframe-poshandler-window-bottom-right-corner' 15. `posframe-poshandler-point-top-left-corner' 16. `posframe-poshandler-point-bottom-left-corner' 17. `posframe-poshandler-point-bottom-left-corner-upward' 18. `posframe-poshandler-point-window-center' by the way, poshandler can be used by other packages easily (for example: mini-frame) with the help of function `posframe-poshandler-argbuilder'. like: (let* ((info (posframe-poshandler-argbuilder child-frame)) (posn (posframe-poshandler-window-center info))) `((left . ,(car posn)) (top . ,(cdr posn)))) (3) POSHANDLER-EXTRA-INFO POSHANDLER-EXTRA-INFO is a plist, which will prepend to the argument of poshandler function: 'info', it will *OVERRIDE* the exist key in 'info'. (4) BUFFER-OR-NAME This posframe's buffer is BUFFER-OR-NAME, which can be a buffer or a name of a (possibly nonexistent) buffer. buffer name can prefix with space, for example ' *mybuffer*', so the buffer name will hide for ibuffer and list-buffers. (5) NO-PROPERTIES If NO-PROPERTIES is non-nil, The STRING's properties will be removed before being shown in posframe. (6) WIDTH, MIN-WIDTH, HEIGHT and MIN-HEIGHT WIDTH, MIN-WIDTH, HEIGHT and MIN-HEIGHT, specify bounds on the new total size of posframe. MIN-HEIGHT and MIN-WIDTH default to the values of ‘window-min-height’ and ‘window-min-width’ respectively. These arguments are specified in the canonical character width and height of posframe. (7) LEFT-FRINGE and RIGHT-FRINGE If LEFT-FRINGE or RIGHT-FRINGE is a number, left fringe or right fringe with be shown with the specified width. (8) BORDER-WIDTH, BORDER-COLOR, INTERNAL-BORDER-WIDTH and INTERNAL-BORDER-COLOR By default, posframe shows no borders, but users can specify borders by setting BORDER-WIDTH to a positive number. Border color can be specified by BORDER-COLOR. INTERNAL-BORDER-WIDTH and INTERNAL-BORDER-COLOR are same as BORDER-WIDTH and BORDER-COLOR, but do not suggest to use for the reason: Add distinct controls for child frames' borders (Bug#45620) http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=ff7b1a133bfa7f2614650f8551824ffaef13fadc (9) FONT, FOREGROUND-COLOR and BACKGROUND-COLOR Posframe's font as well as foreground and background colors are derived from the current frame by default, but can be overridden using the FONT, FOREGROUND-COLOR and BACKGROUND-COLOR arguments, respectively. (10) RESPECT-HEADER-LINE and RESPECT-MODE-LINE By default, posframe will display no header-line, mode-line and tab-line. In case a header-line, mode-line or tab-line is desired, users can set RESPECT-HEADER-LINE and RESPECT-MODE-LINE to t. (11) INITIALIZE INITIALIZE is a function with no argument. It will run when posframe buffer is first selected with `with-current-buffer' in `posframe-show', and only run once (for performance reasons). (12) LINES-TRUNCATE If LINES-TRUNCATE is non-nil, then lines will truncate in the posframe instead of wrap. (13) OVERRIDE-PARAMETERS OVERRIDE-PARAMETERS is very powful, *all* the frame parameters used by posframe's frame can be overridden by it. (14) TIMEOUT TIMEOUT can specify the number of seconds after which the posframe will auto-hide. (15) REFRESH If REFRESH is a number, posframe's frame-size will be re-adjusted every REFRESH seconds. (16) ACCEPT-FOCUS When ACCEPT-FOCUS is non-nil, posframe will accept focus. be careful, you may face some bugs when set it to non-nil. (17) HIDEHANDLER HIDEHANDLER is a function, when it return t, posframe will be hide, this function has a plist argument: (:posframe-buffer xxx :posframe-parent-buffer xxx) The builtin hidehandler functions are listed below: 1. `posframe-hidehandler-when-buffer-switch' (18) REFPOSHANDLER REFPOSHANDLER is a function, a reference position (most is top-left of current frame) will be returned when call this function. when it is nil or it return nil, child-frame feature will be used and reference position will be deal with in emacs. The user case I know at the moment is let ivy-posframe work well in EXWM environment (let posframe show on the other appliction window). DO NOT USE UNLESS NECESSARY!!! An example parent frame poshandler function is: 1. `posframe-refposhandler-xwininfo' (19) Others You can use `posframe-delete-all' to delete all posframes. (fn BUFFER-OR-NAME &key STRING POSITION POSHANDLER POSHANDLER-EXTRA-INFO WIDTH HEIGHT MIN-WIDTH MIN-HEIGHT X-PIXEL-OFFSET Y-PIXEL-OFFSET LEFT-FRINGE RIGHT-FRINGE BORDER-WIDTH BORDER-COLOR INTERNAL-BORDER-WIDTH INTERNAL-BORDER-COLOR FONT FOREGROUND-COLOR BACKGROUND-COLOR RESPECT-HEADER-LINE RESPECT-MODE-LINE INITIALIZE NO-PROPERTIES KEEP-RATIO LINES-TRUNCATE OVERRIDE-PARAMETERS TIMEOUT REFRESH ACCEPT-FOCUS HIDEHANDLER REFPOSHANDLER &allow-other-keys) (defalias 'posframe-show #[385 "\304\305\"A@\304\306\"A@\304\307\"A@\304\310\"A@\304\311\"A@\304\312\"A@\304\313\"A@\304\314\"A@\304 \315\"A@\304\n\316\"A@\304 \317\"A@\304\f\320\"A@\304 \321\"A@\304\322\"A@\304\323\"A@\304\324\"A@\304\325\"A@\304\326\"A@\304\327\"A@\304\330\"A@\304\331\"A@\304\332\"A@\304\333\"A@\304\334\"A@\304\335\"A@\304\336\"A@\304\337\"A@\304\340\"A@\304\341\"A@\304\342\"A@\304\343\"A@!\306 #\206\337`\"\307 ##\310 #$\311 #%\312 #&\313 #\206\344'\314 #\206\344(\315 #\206\345)\316 #\206'\345*\317 #+\320 #,\321 #-\322 #.\323 #/\324 #0\325 #1\326 #2\327 #3\330 #4\331 #5\332 #6\333 #7\334 #8\335 #9\336 #:\337 #;\340 #<\341 #=\342 #>\343 #\346?!\347 \350!\351!\352!\353!\354!\355!\356!\357\n!\205\352\3601\350 !0\202\352\210\361\362 r\363\n!q\210\364)!)\365 \353\366 !\367 !\357\370!\203 \370 \202\345\371\361rq\210\n\204(\357!\203'\211 \210\371\210\372\325\"\373\f?\2057\317,\320-\321.\322/\3230\3241\3261\3272\334/\3350\3307\3318\3365\3414&!\262\374 !\210\375N\"\210\376,+/.%\210\377\201@\201A0\3064\3075\201B\201C\201D\201E\355!\201F\356!\201G$\373 \201H!\201I\"\201J#\201K-\201L.\201M/\201N0\201O1\201P,\201Q-\201R.\201S/\315W\316X\257.\"!\f\f$\210\201T\"\210\201U-,0/&\210\201V !\201W!\203+\201X\345\"\210\210\363!\201Y!\201Z \201[#\210\201Z \201\\B#\266*\266\256\207" [posframe-arghandler frame-resize-pixelwise posframe--initialized-p posframe--frame plist-member :string :position :poshandler :poshandler-extra-info :width :height :min-width :min-height :x-pixel-offset :y-pixel-offset :left-fringe :right-fringe :border-width :border-color :internal-border-width :internal-border-color :font :foreground-color :background-color :respect-header-line :respect-mode-line :initialize :no-properties :keep-ratio :lines-truncate :override-parameters :timeout :refresh :accept-focus :hidehandler :refposhandler 1 0 get-buffer-create selected-window window-pixel-top window-pixel-left window-pixel-width window-pixel-height window-frame frame-pixel-width frame-pixel-height functionp (error) nil default-font-width window-buffer posframe--get-font-height window-mode-line-height minibuffer-window window-header-line-height window-tab-line-height t posframe--create-posframe :parent-frame posframe--mouse-banish posframe--insert-string posframe--set-frame-size posframe--set-frame-position posframe-run-poshandler append :font-height :font-width :posframe :posframe-width :posframe-height :posframe-buffer :parent-frame-width :parent-frame-height :ref-position :parent-window :parent-window-top :parent-window-left :parent-window-width :parent-window-height :mode-line-height :minibuffer-height :header-line-height :tab-line-height posframe--run-timeout-timer posframe--run-refresh-timer frame-root-window window-live-p set-window-point buffer-name set-frame-parameter posframe-hidehandler posframe-parent-buffer] 131 (#$ . 8862)]) #@51 Get the font's height at POSITION. (fn POSITION) (defalias 'posframe--get-font-height #[257 "\211@=\203\nA\207\211\250\205$\211\301U?\205$\302dY\203\"dS\202#!\250\205?\301U\2045\303!\204:\304 \202?\305!\306HB\207" [posframe--last-font-height-info 1 font-at fontp default-line-height font-info 3] 5 (#$ . 18542)]) #@145 Redirect focus from the posframe to the parent frame. This prevents the posframe from catching keyboard input if the window manager selects it. (defalias 'posframe--redirect-posframe-focus #[0 "\302 =\205 ?\205\303\304 \"\207" [posframe--frame posframe--accept-focus selected-frame redirect-frame-focus frame-parent] 3 (#$ . 18883)]) (byte-code "\301\302\"\203\303\304\305\"\210\202\306\307\310\311B\305\312$\210\312\207" [emacs-version version< "27.1" add-hook focus-in-hook posframe--redirect-posframe-focus advice--add-function :after #[0 "\300\301!\207" [default-value after-focus-change-function] 2] #[257 "\300\301\"\207" [set-default after-focus-change-function] 4 "\n\n(fn GV--VAL)"] nil] 5) #@202 Banish mouse to the (0 . 0) of PARENT-FRAME. FIXME: This is a hacky fix for the mouse focus problem, which like: https://github.com/tumashu/posframe/issues/4#issuecomment-357514918 (fn PARENT-FRAME) (defalias 'posframe--mouse-banish #[257 ":\203@A\211\211B\266\202\266\202\202\204\302\202\303\211\205. ?\205.\304@A#\207" [posframe-mouse-banish posframe--accept-focus nil (0 . 0) set-mouse-position] 7 (#$ . 19602)]) #@132 Insert STRING to current buffer. If NO-PROPERTIES is non-nil, all properties of STRING will be removed. (fn STRING NO-PROPERTIES) (defalias 'posframe--insert-string #[514 "\205#;\205#\300\301G\302$\210\211\203\303!\202\304 \210\211c\262\207" [remove-text-properties 0 (read-only t) substring-no-properties erase-buffer] 7 (#$ . 20046)]) #@51 (fn POSFRAME HEIGHT MIN-HEIGHT WIDTH MIN-WIDTH) (defalias 'posframe--fit-frame-to-buffer #[1285 "\302\303!\203\303\304\211\211&\202\305%)\207" [posframe-gtk-resize-child-frames x-gtk-resize-child-frames functionp fit-frame-to-buffer-1 nil fit-frame-to-buffer] 14 (#$ . 20403)]) #@150 Set POSFRAME's size. It will set the size by the POSFRAME's HEIGHT, MIN-HEIGHT WIDTH and MIN-WIDTH. (fn POSFRAME HEIGHT MIN-HEIGHT WIDTH MIN-WIDTH) (defalias 'posframe--set-frame-size #[1285 "\301%\210\302\300!\210F\211\207" [posframe--last-posframe-size posframe--fit-frame-to-buffer make-local-variable] 11 (#$ . 20707)]) #@144 Move POSFRAME to POSITION. This need PARENT-FRAME-WIDTH and PARENT-FRAME-HEIGHT (fn POSFRAME POSITION PARENT-FRAME-WIDTH PARENT-FRAME-HEIGHT) (defalias 'posframe--set-frame-position #[1028 "\232\203 B\232\203\n\303!\304!B\232\204=\305@A#\210\306\300!\210\306\301!\210B\306\302!\210\303!\304!B\307!?\205K\310!\210\311!\207" [posframe--last-posframe-pixel-position posframe--last-parent-frame-size posframe--last-posframe-displayed-size frame-pixel-width frame-pixel-height set-frame-position make-local-variable frame-visible-p make-frame-visible redraw-frame] 8 (#$ . 21049)]) #@66 Hide POSFRAME after a delay of SECS seconds. (fn POSFRAME SECS) (defalias 'posframe--run-timeout-timer #[514 "\211\247\205!\211\301V\205!\302!\203\303!\210\304\300!\210\305\306\307$\211\207" [posframe--timeout-timer 0 timerp cancel-timer make-local-variable run-with-timer nil posframe--make-frame-invisible] 7 (#$ . 21660)]) #@70 `make-frame-invisible' replacement to hide FRAME safely. (fn FRAME) (defalias 'posframe--make-frame-invisible #[257 "\300!\205 \301!\207" [frame-live-p make-frame-invisible] 3 (#$ . 22002)]) #@184 Refresh POSFRAME every REPEAT seconds. It will set POSFRAME's size by the posframe's HEIGHT, MIN-HEIGHT, WIDTH and MIN-WIDTH. (fn POSFRAME REPEAT HEIGHT MIN-HEIGHT WIDTH MIN-WIDTH) (defalias 'posframe--run-refresh-timer #[1542 "\247\2055\301V\2055\205?\2055\302!\203\303!\210\304\300!\210\305\306\307 &\211\207" [posframe--refresh-timer 0 timerp cancel-timer make-local-variable run-with-timer nil #[1285 "\301\205\302!\205\303%)\207" [frame-resize-pixelwise t frame-live-p posframe--fit-frame-to-buffer] 11 "\n\n(fn FRAME HEIGHT MIN-HEIGHT WIDTH MIN-WIDTH)"]] 15 (#$ . 22204)]) #@455 Refresh posframe pertaining to BUFFER-OR-NAME. For example: (defvar buf " *test*") (posframe-show buf) (with-current-buffer buf (erase-buffer) (insert "ffffffffffffff") (posframe-refresh buf)) User can use posframe-show's :refresh argument, to do similar job: (defvar buf " *test*") (posframe-show buf :refresh 0.25) (with-current-buffer buf (erase-buffer) (insert "ffffffffffffff")) (fn BUFFER-OR-NAME) (defalias 'posframe-refresh #[257 "\302 \211\2050\211@\303\304\"\305@\232\204A\232\203'rq\210\306\307 #\210))\210A\266\202\202\207" [frame-resize-pixelwise posframe--last-posframe-size frame-list frame-parameter posframe-buffer t apply posframe--fit-frame-to-buffer] 8 (#$ . 22830)]) #@115 Hide posframe pertaining to BUFFER-OR-NAME. BUFFER-OR-NAME can be a buffer or a buffer name. (fn BUFFER-OR-NAME) (defalias 'posframe-hide #[257 "\301\302 \211\205(\211@\303\304\"@\232\204A\232\203 \305!\210\210A\266\202\202\262)\207" [buffer-list-update-hook nil frame-list frame-parameter posframe-buffer posframe--make-frame-invisible] 6 (#$ . 23590)]) #@34 Run posframe hidehandler daemon. (defalias 'posframe-hidehandler-daemon #[0 "\301!\203\n\302!\210\303\304\305\306#\211\207" [posframe-hidehandler-timer timerp cancel-timer run-with-idle-timer 0.5 t posframe-hidehandler-daemon-function] 4 (#$ . 23967)]) #@39 Posframe hidehandler daemon function. (defalias 'posframe-hidehandler-daemon-function #[0 "\30017\301 \211\2053\211@\302\303\"\302\304\"\302\305\"\203*\306\307F!\203*\310!\210\266A\266\202\202\2620\207\210\311\207" [(error) frame-list frame-parameter posframe-hidehandler posframe-buffer posframe-parent-buffer :posframe-buffer :posframe-parent-buffer posframe--make-frame-invisible nil] 10 (#$ . 24230)]) (byte-code "\300 \210\301\302\303\"\207" [posframe-hidehandler-daemon remove-hook post-command-hook posframe-run-hidehandler] 3) #@155 Posframe hidehandler function. This function let posframe hide when user switch buffer. Note: This function is called in `post-command-hook'. (fn INFO) (defalias 'posframe-hidehandler-when-buffer-switch #[257 "\300\301\"A\302!\205\211p\232?\207" [plist-get :posframe-parent-buffer buffer-live-p] 4 (#$ . 24789)]) #@260 Delete posframe pertaining to BUFFER-OR-NAME and kill the buffer. BUFFER-OR-NAME can be a buffer or a buffer name. This function is not commonly used, for delete and recreate posframe is very very slowly, `posframe-hide' is more useful. (fn BUFFER-OR-NAME) (defalias 'posframe-delete #[257 "\300!\210\301!\207" [posframe-delete-frame posframe--kill-buffer] 3 (#$ . 25115)]) #@117 Delete posframe pertaining to BUFFER-OR-NAME. BUFFER-OR-NAME can be a buffer or a buffer name. (fn BUFFER-OR-NAME) (defalias 'posframe-delete-frame #[257 "\300 \211\205L\211@\301\302\"\303!@\232\204A\232\203C\211\203?r\211q\210\304\211\203=\211@\305!\2036\306!\210A\266\202\202&\210)\307!\210\266A\266\202\202\207" [frame-list frame-parameter posframe-buffer get-buffer (posframe--refresh-timer posframe--timeout-timer) timerp cancel-timer delete-frame] 9 (#$ . 25500)]) #@111 Kill posframe's buffer: BUFFER-OR-NAME. BUFFER-OR-NAME can be a buffer or a buffer name. (fn BUFFER-OR-NAME) (defalias 'posframe--kill-buffer #[257 "\300\301!!\205 \302!\207" [buffer-live-p get-buffer kill-buffer] 4 (#$ . 26001)]) #@164 Select posframe of BUFFER-OR-NAME and call FUNCTION with ARGUMENTS. BUFFER-OR-NAME can be a buffer or a buffer name. (fn BUFFER-OR-NAME FUNCTION &rest ARGUMENTS) (defalias 'posframe-funcall #[642 "\301!\2055\302!\2055rq\210\303!\2054\304 p\305\306\307\310\311\"\312\"\313$\216\314\315\"\210\316\")\266\202)\207" [posframe--frame functionp get-buffer framep selected-frame make-byte-code 0 "\302\300!\203 \303\300\304\"\210\305\301!\205\301q\207" vconcat vector [frame-live-p select-frame norecord buffer-live-p] 3 select-frame norecord apply] 12 (#$ . 26243)]) #@27 Hide all posframe frames. (defalias 'posframe-hide-all #[0 "\300 \211\205\211@\301\302\"\203\303!\210A\266\202\202\207" [frame-list frame-parameter posframe-buffer posframe--make-frame-invisible] 5 (#$ . 26828) nil]) #@41 Delete all posframe frames and buffers. (defalias 'posframe-delete-all #[0 "\301 \211\203\211@\302\303\"\203\304!\210A\266\202\202\210\305 \211\2057\211@r\211q\210\203/\306!\210)A\266\202\202\207" [posframe--frame frame-list frame-parameter posframe-buffer delete-frame buffer-list posframe--kill-buffer] 5 (#$ . 27060) nil]) #@95 Auto delete posframe when its buffer is killed. This function is used by `kill-buffer-hook'. (defalias 'posframe-auto-delete #[0 "\300p!\207" [posframe-delete-frame] 2 (#$ . 27408)]) #@114 Run posframe's position handler. the structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-run-poshandler #[257 "\211\232\203 \207\211\302\303\"\302\304\"\206<\302\305\"\211\250\203\"\306\202:\211:\2037\211@\250\2037\211A\250\2037\307\202:\310\311!\262!\211@A\204J\202\225\302\312\"\302\313\"\302\314\"\302\315\"@\206d\316A\206k\316\316W\203{\\Z\262\316W\203\212\\Z\262\\\\B\266\206\207" [posframe--last-poshandler-info posframe--last-posframe-pixel-position plist-get :ref-position :poshandler :position posframe-poshandler-point-bottom-left-corner posframe-poshandler-absolute-x-y error "Posframe: have no valid poshandler" :parent-frame-width :parent-frame-height :posframe-width :posframe-height 0] 14 (#$ . 27599)]) #@471 Return a info list of CHILD-FRAME, which can be used as poshandler's info argument. if CHILD-FRAME is nil, parent frame will use selected frame. The documents of POSITION, POSHANDLER, X-PIXEL-OFFSET and Y-PIXEL-OFFSET can be found in dostring of `posframe-show'. NOTE: this function is not used by posframe itself, it just let poshandler easily used for other purposes. (fn &optional CHILD-FRAME &key POSITION POSHANDLER REFPOSHANDLER X-PIXEL-OFFSET Y-PIXEL-OFFSET) (defalias 'posframe-poshandler-argbuilder #[384 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\206P`\203\\\313!\206]\314\203i\315 !\206j\314 \205u\316\317 !!\n\203\201\320 !\202\203\321 \313!\315! \203\224\317!\202\226\322 \323!\324!\325!\326!\327 r\316!q\210\330 !)\331!\326\332 !\333 !\334\335!\203\311\335\n!\202\312\314\334!\205\340\3361\336!0\202\340\210\310\301\302\337\n\340 \341\"\342\343\344\345\346 \347!\350\351$\352%\353&\354'\355(\356'\357(\360)\361*\304?\206&\314\305@\206-\314\257.\266\223\207" [plist-member :position :poshandler :refposhandler :x-pixel-offset :y-pixel-offset (:position :poshandler :refposhandler :x-pixel-offset :y-pixel-offset :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:position :poshandler :refposhandler :x-pixel-offset :y-pixel-offset)" frame-pixel-width 0 frame-pixel-height window-buffer frame-root-window frame-parent selected-frame selected-window window-pixel-top window-pixel-left window-pixel-width window-pixel-height default-font-width posframe--get-font-height window-mode-line-height minibuffer-window window-header-line-height functionp window-tab-line-height (error) :font-height :font-width :posframe :posframe-width :posframe-height :posframe-buffer :parent-frame :parent-frame-width :parent-frame-height :ref-position :parent-window :parent-window-top :parent-window-left :parent-window-width :parent-window-height :mode-line-height :minibuffer-height :header-line-height :tab-line-height] 72 (#$ . 28426)]) #@156 Posframe's position hanlder. Deal with (integer . integer) style position, the structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-absolute-x-y #[257 "\300\301\"\300\302\"\300\303\"@\\A\\B\207" [plist-get :position :x-pixel-offset :y-pixel-offset] 7 (#$ . 30604)]) #@251 Posframe's position hanlder. Get bottom-left-corner pixel position of a point, the structure of INFO can be found in docstring of `posframe-show'. Optional argument FONT-HEIGHT, UPWARD, CENTERING . (fn INFO &optional FONT-HEIGHT UPWARD CENTERING) (defalias 'posframe-poshandler-point-bottom-left-corner #[1025 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300 \306\"\300\n\307\"\300 \310\"\300\f\311\"\300 \312\"\2068\300 \313\"\211\250\203E\314\"\202F\211\300\315\"\300\316\"\317\320\n!@\3218\262@\206a\322\3238\262@\206l\322Z#\317\324 !A@\3218\262A\206\205\322\3238\262A\206\221\322Z%\206\237\300\325\"\\\203\264  Z\321\245\\\202\301\322 \206\276\322Z^]\322\203\324\206\316\322Z\322V\202\337\206\333\322\\ V\203\355\206\351\322Z\202\356]B\207" [plist-get :x-pixel-offset :y-pixel-offset :posframe-width :posframe-height :parent-window :parent-window-left :parent-window-width :parent-frame-width :parent-frame-height :position-info :position posn-at-point :header-line-height :tab-line-height + window-inside-pixel-edges 2 0 8 window-pixel-edges :font-height] 26 (#$ . 30938)]) #@195 Posframe's position hanlder. Get a position of a point, by which a window-centered posframe can be put below it, the structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-point-window-center #[257 "\300\301\211\302$\207" [posframe-poshandler-point-bottom-left-corner nil t] 6 (#$ . 32124)]) #@206 Posframe's position hanlder. Get a position of a point, by which posframe can put above it, the structure of INFO can be found in docstring of `posframe-show'. Optional argument FONT-HEIGHT . (fn INFO) (defalias 'posframe-poshandler-point-bottom-left-corner-upward #[257 "\300\301\302#\207" [posframe-poshandler-point-bottom-left-corner nil t] 5 (#$ . 32477)]) #@157 Posframe's position hanlder. Get top-left-corner pixel position of a point, the structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-point-top-left-corner #[257 "\300\301\"\207" [0 posframe-poshandler-point-bottom-left-corner] 5 (#$ . 32849)]) #@182 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-center #[257 "\300\301\"\300\302\"Z\303\245\300\304\"\300\305\"Z\303\245B\207" [plist-get :parent-frame-width :posframe-width 2 :parent-frame-height :posframe-height] 6 (#$ . 33156)]) #@186 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's top center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-top-center #[257 "\300\301\"\300\302\"Z\303\245\304B\207" [plist-get :parent-frame-width :posframe-width 2 0] 5 (#$ . 33569)]) #@191 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's top left corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-top-left-corner #[257 "\300\207" [(0 . 0)] 2 (#$ . 33927)]) #@192 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's top right corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-top-right-corner #[257 "\300\207" [(-1 . 0)] 2 (#$ . 34221)]) #@194 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's bottom left corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-bottom-left-corner #[257 "\300\301\300\302\303\"\302\304\"#B\207" [0 - plist-get :mode-line-height :minibuffer-height] 8 (#$ . 34518)]) #@195 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's bottom right corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-bottom-right-corner #[257 "\300\301\302\303\304\"\303\305\"#B\207" [-1 - 0 plist-get :mode-line-height :minibuffer-height] 8 (#$ . 34893)]) #@189 Posframe's position handler. Get a position which let posframe stay onto its parent-frame's bottom center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-frame-bottom-center #[257 "\300\301\"\300\302\"Z\303\245\304\300\305\"\300\306\"\300\307\"\300\310\"$B\207" [plist-get :parent-frame-width :posframe-width 2 - :parent-frame-height :posframe-height :mode-line-height :minibuffer-height] 9 (#$ . 35273)]) #@180 Posframe's position handler. Get a position which let posframe stay onto current window's center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-center #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300\306\"Z\307\245\\Z\307\245\\B\207" [plist-get :parent-window-left :parent-window-top :parent-window-width :parent-window-height :posframe-width :posframe-height 2] 11 (#$ . 35758)]) #@189 Posframe's position handler. Get a position which let posframe stay onto current window's top left corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-top-left-corner #[257 "\300\301\"\300\302\"B\207" [plist-get :parent-window-left :parent-window-top] 5 (#$ . 36245)]) #@190 Posframe's position handler. Get a position which let posframe stay onto current window's top right corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-top-right-corner #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\305[#B\207" [plist-get :parent-window-left :parent-window-top :parent-window-width :posframe-width +] 9 (#$ . 36600)]) #@184 Posframe's position handler. Get a position which let posframe stay onto current window's top center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-top-center #[257 "\300\301\"\300\302\"\300\303\"\300\304\"Z\305\245\\B\207" [plist-get :parent-window-left :parent-window-top :parent-window-width :posframe-width 2] 8 (#$ . 37026)]) #@192 Posframe's position handler. Get a position which let posframe stay onto current window's bottom left corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-bottom-left-corner #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\306\307\310##B\207" [plist-get :parent-window-left :parent-window-top :parent-window-height :posframe-height :mode-line-height + - 0] 14 (#$ . 37445)]) #@193 Posframe's position handler. Get a position which let posframe stay onto current window's bottom right corner. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-bottom-right-corner #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300\306\"\300\307\"\310[#\310\311\312##B\207" [plist-get :parent-window-left :parent-window-top :parent-window-width :parent-window-height :posframe-width :posframe-height :mode-line-height + - 0] 16 (#$ . 37922)]) #@187 Posframe's position handler. Get a position which let posframe stay onto current window's bottom center. The structure of INFO can be found in docstring of `posframe-show'. (fn INFO) (defalias 'posframe-poshandler-window-bottom-center #[257 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300\306\"\300\307\"Z\310\245\\\311\312\313##B\207" [plist-get :parent-window-left :parent-window-top :parent-window-width :parent-window-height :posframe-width :posframe-height :mode-line-height 2 + - 0] 16 (#$ . 38474)]) #@132 Parent frame poshander function. Get the position of parent frame (current frame) with the help of xwininfo. (fn &optional FRAME) (defalias 'posframe-refposhandler-xwininfo #[256 "\301\302!\205P\303\304!r\211q\210\305\306\307\310\311!\312\"\313$\216\314\315\302\314\316\314\317\320\321\"\322\320\n\323\"&\210eb\210\324\325!\210\326\327\324\330!\331 \"!\326\327\324\332!\331 \"!B\266\202+\262\207" [case-fold-search executable-find "xwininfo" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 nil call-process t "-display" frame-parameter display "-id" window-id search-forward "Absolute upper-left" string-to-number buffer-substring-no-properties "X: " line-end-position "Y: "] 13 (#$ . 39020)]) (provide 'posframe)