From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel Newsgroups: gmane.emacs.bugs Subject: bug#25408: Remove Decorations Around Emacs Frame (Windows OS) Date: Sat, 11 Feb 2017 16:10:57 -0500 Message-ID: <0eca254d-1775-35b0-1db1-ad31e0654812@mit.edu> References: <587499E6.9030205@gmx.at> <838tqietdj.fsf@gnu.org> <587522DB.2050105@gmx.at> <831swaepnc.fsf@gnu.org> <5875EF34.20507@gmx.at> <9efbe1e3-e8aa-f056-bc5c-5a41f10b6d42@gmail.com> <58996EED.6030601@gmx.at> <3d34793f-4b7c-d4ea-74ec-49ce84214cc8@gmail.com> <589F1F58.1050807@gmx.at> <301ed349-64c7-12c6-d843-e73eb1e20e83@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms000107000608090308030903" X-Trace: blaine.gmane.org 1486859112 9205 195.159.176.226 (12 Feb 2017 00:25:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 12 Feb 2017 00:25:12 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 Cc: 25408@debbugs.gnu.org To: martin rudalics , Arthur Miller Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Feb 12 01:25:08 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cchyW-00022y-3t for geb-bug-gnu-emacs@m.gmane.org; Sun, 12 Feb 2017 01:25:08 +0100 Original-Received: from localhost ([::1]:50073 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cchyb-0004Qo-I7 for geb-bug-gnu-emacs@m.gmane.org; Sat, 11 Feb 2017 19:25:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58019) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cchyT-0004PF-Bu for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 19:25:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cchyQ-0003HX-56 for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 19:25:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37829) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cchyQ-0003HO-1h for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 19:25:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cchyP-0003VD-RC for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 19:25:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Feb 2017 00:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25408 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 25408-submit@debbugs.gnu.org id=B25408.148685910113460 (code B ref 25408); Sun, 12 Feb 2017 00:25:01 +0000 Original-Received: (at 25408) by debbugs.gnu.org; 12 Feb 2017 00:25:01 +0000 Original-Received: from localhost ([127.0.0.1]:36028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cchyO-0003Uu-LZ for submit@debbugs.gnu.org; Sat, 11 Feb 2017 19:25:01 -0500 Original-Received: from mout.kundenserver.de ([217.72.192.75]:53266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccewl-0005wT-4m for 25408@debbugs.gnu.org; Sat, 11 Feb 2017 16:11:07 -0500 Original-Received: from [192.168.1.102] ([67.186.135.89]) by mrelayeu.kundenserver.de (mreue104 [212.227.15.184]) with ESMTPSA (Nemesis) id 0LfBRg-1c5jpr3gTY-00omK6; Sat, 11 Feb 2017 22:11:00 +0100 In-Reply-To: <301ed349-64c7-12c6-d843-e73eb1e20e83@gmail.com> X-Provags-ID: V03:K0:dKZb/KyVA44yERKiqheteu6rzGLpsS4LeNio2Bb9NMrWqLv/MDA XrjFyoiCkqUUSvMoI6PMor+zmUo26nRCNmeGnoVRXUaPcJrersyVhAEVQM3C0Ufv1MY/V5/ JtykAo8+lRQrVeYmUzCT/eiamjCblgThk/iRpptFdOWFwKwLb7E2BKos/3yEc3/7jU4lOXR Ie+kngfgiISs8ElU0Sgkg== X-UI-Out-Filterresults: notjunk:1;V01:K0:s2p43bh3pxg=:vMn5pslZ7scKhm7GZUTKCH ApdC8m42/MhL/7z/40gJi7Ih87niyG3Ond7wnULUxn4qNgij87p3rL1F5Y8iGWJkLfqkzMFv4 hN9lNDNXyJcB7pPTiT4KIWBxfxWBlPlugJ9Dh+fw/meg1qKGc/WdTrCXDr5uN8Rsi2gt3K7Iw cz6Xo/fNtMAefj41RQ73qv085BkBI315kQMNudUMNvreornFmdi2UOEbNiSn3/OR3aEG8kv1V sfiraUy7xQluEmDrFM2e3QP64DAk9HbnJRv2Xdk23j0aRjRytS0s8SypNbZtG9zvc0ikltsZw O+zLYc4TGwVCykHo2CtyH/wMKOEEBCCZNwhIQVDs5asiGMVwAk9wy+6Nv9b3f6ZuqM12DMa9X ekKgGz9Nmk39RiVkTVanORgaPszI/MYCm2iu4yhprObELH2JK6hiA6GXlkw6QLjRRZ6SwH4qD 773i1dJzImVLLZTID5t2C35+dRu89BofFuG3eiWcNeXTmWSlpQ4Ime4g6CR2K+t5OFs1RemYN MEf1vrWg6mQbBxCNitraW8r/8+qruitIY41eOWkHNy3SVybY/3Mp+aBIrnu70GR+4k7i80D9Z cuzeMicUpKIfIpTevo/AXTxieZKZAjPUjxZayrMfpGU9h8/F0YMafh2+6Ontih9So5XEzvTyd NfbsEqdy+v4VILyRCEFOOFsjgnkvQeB8sj2DyyiXa2VVk52InqsQ+6cX45s2iu2blBa8= X-Mailman-Approved-At: Sat, 11 Feb 2017 19:24:59 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:129252 Archived-At: This is a cryptographically signed message in MIME format. --------------ms000107000608090308030903 Content-Type: multipart/mixed; boundary="------------416CB3BF251D35C7B50F3881" This is a multi-part message in MIME format. --------------416CB3BF251D35C7B50F3881 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > I've posted the code I used to test this with company.=20 Of course, I forgot the attachment. --------------416CB3BF251D35C7B50F3881 Content-Type: text/x-emacs-lisp; name="company-tooltip.el" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="company-tooltip.el" ;;; company-tooltip.el --- Use a real ppup to show company candidates ;;; Commentary: ;; ;;; Code: (require 'company) (defun company-tooltip--frame-params (parent-frame) `(;; Initial state (fullscreen . nil) (line-spacing . 0) ;; Size (min-height . 0) (min-width . 0) ;; Borders and fringes (left-fringe . 0) (right-fringe . 0) (right-divider-width . 0) (bottom-divider-width . 0) (border-width . 0) (internal-border-width . 0) ;; UI components (undecorated . t) (menu-bar-lines . 0) (tool-bar-lines . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) ;; Buffers (minibuffer . nil) (unsplittable . t) ;; Appearance (cursor-type . nil) ;; FIXME Also use cursor-type and cursor-in-non-s= elected-windows variables (background-color . ,(face-attribute 'company-tooltip :background)) ;; Behavior (delete-before . ,parent-frame) (no-focus-on-map . t) (skip-taskbar . t) (no-other-frame . t) (no-accept-focus . t) (z-group . above))) (defvar company-tooltip--frame nil) (defvar company-tooltip--buffer nil) (defun company-tooltip--adjust-frame (x y width height) "Move company tooltip to X, Y and resize to WIDTH, HEIGHT." (set-frame-position company-tooltip--frame x y) (set-frame-width company-tooltip--frame width) (set-frame-height company-tooltip--frame height)) (defun company-tooltip--ensure-frame (x y width height) "Create or return the company tooltip frame. X, Y, WIDTH, HEIGHT: see `company-tooltip--adjust-frame'." (unless (frame-live-p company-tooltip--frame) ;; (cl-letf (((symbol-function 'face-set-after-frame-default) ;; (symbol-function 'ignore))) (setq company-tooltip--frame (make-frame `((top . ,y) (left . ,x) (width . ,width) (height . ,height) ,@(company-tooltip--frame-params (selecte= d-frame)))))) (company-tooltip--adjust-frame x y width height) ;; (make-frame-visible company-tooltip--frame) ;; FIXME raise-frame doesn't work when called right after make-frame-vi= sible (raise-frame company-tooltip--frame)) (defvar company-tooltip--map (let ((map (make-keymap))) ;; FIXME this doesn't cause mouse events to be ignored (define-key map [t] 'ignore) map)) (define-derived-mode company-tooltip--mode fundamental-mode "tooltip" "Major mode for company tooltip frames." (setq-local overriding-local-map company-tooltip--map) (setq-local truncate-lines t) (setq-local mode-line-format nil) (setq-local cursor-type nil) (setq-local cursor-in-non-selected-windows nil)) ;; (kill-buffer "*company-tooltip*") (defun company-tooltip--ensure-buffer () "Create or return the company tooltip buffer." (unless company-tooltip--buffer (with-current-buffer (get-buffer-create "*company-tooltip*") (company-tooltip--mode) (setq company-tooltip--buffer (current-buffer))))) (defun company-tooltip--set-buffer () "Set buffer of company tooltip frame." (company-tooltip--ensure-buffer) (set-window-buffer (frame-root-window company-tooltip--frame) company-t= ooltip--buffer)) (defun company-tooltip--posn-x-y (position) "Return X and Y coordinates of bottom-left corner of POSITION." (let* ((point-x-y (posn-x-y position)) (window (posn-window position)) (win-edges (window-edges window nil t t)) (win-x-y (cons (nth 0 win-edges) (nth 1 win-edges))) (frame-x-y (cons (frame-parameter (selected-frame) 'top) (frame-parameter (selected-frame) 'left)))) (cons (+ (car point-x-y) (car win-x-y)) (+ (cdr point-x-y) (cdr win-x-y) (line-pixel-height) (window-header-line-height window))))) (defun company-tooltip--update-1 (width height contents) "Update position, WIDTH, HEIGHT, CONTENTS, and visibility of tooltip fr= ame." (let* ((x-y (company-tooltip--posn-x-y (save-excursion (backward-char (length company-prefix)) (posn-at-point))))) (company-tooltip--ensure-frame (car x-y) (cdr x-y) width (abs height)= ) (company-tooltip--set-buffer) (with-current-buffer company-tooltip--buffer (erase-buffer) (insert contents)))) (defun company-tooltip--update (height selection) "Wrapper around `company-tooltip--update'. HEIGHT is passed unmodified. SELECTION is used to compute width and contents." (let* ((lines (company--create-lines selection (abs height))) (contents (mapconcat (lambda (l) (concat l "=E2=80=8B")) lines "= \n"))) (company-tooltip--update-1 (string-width (car lines)) height contents= ))) (defun company-tooltip-show (row column selection) (company-tooltip--update (company--pseudo-tooltip-height) selection)) (defun company-tooltip-edit (selection) (company-tooltip--update (overlay-get company-pseudo-tooltip-overlay 'c= ompany-height) selection)) (defun company-tooltip-hide () (when (frame-live-p company-tooltip--frame) ;; FIXME: this should work: (make-frame-invisible company-tooltip--fr= ame) (delete-frame company-tooltip--frame))) (defun company-tooltip--add-advice () (interactive) (advice-add 'company-pseudo-tooltip-show :after 'company-tooltip-show) (advice-add 'company-pseudo-tooltip-edit :after 'company-tooltip-edit) (advice-add 'company-pseudo-tooltip-hide :after 'company-tooltip-hide))= (defun company-tooltip--remove-advice () (interactive) (advice-remove 'company-pseudo-tooltip-show 'company-tooltip-show) (advice-remove 'company-pseudo-tooltip-edit 'company-tooltip-edit) (advice-remove 'company-pseudo-tooltip-hide 'company-tooltip-hide)) (provide 'company-tooltip) ;;; company-tooltip.el ends here --------------416CB3BF251D35C7B50F3881-- --------------ms000107000608090308030903 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC A8gwggPEMIIDLaADAgECAhAFTpEFd7pdiMcr6MwkhoRoMA0GCSqGSIb3DQEBCwUAMGwxCzAJ BgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNzYWNodXNldHRzMS4wLAYDVQQKEyVNYXNzYWNodXNl dHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5MRUwEwYDVQQLEwxDbGllbnQgQ0EgdjEwHhcN MTYwNzIyMjAzNzM3WhcNMTcwNzMxMjAzNzM3WjCBrDELMAkGA1UEBhMCVVMxFjAUBgNVBAgT DU1hc3NhY2h1c2V0dHMxLjAsBgNVBAoTJU1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRl Y2hub2xvZ3kxFTATBgNVBAsTDENsaWVudCBDQSB2MTEeMBwGA1UEAxMVQ2xlbWVudCBGIFBp dC1DbGF1ZGVsMR4wHAYJKoZIhvcNAQkBFg9jcGl0Y2xhQE1JVC5FRFUwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQDsGIVjnDysgVLsrxleGDQEZl+iGBLP/jTIQQ+YIyZZYRVI 99cMACDLph3Qcm4BaRcTho8JOavaLhh4Z2+ZmSfjweyV0xnZWBJCTBeNI1oEoyJNbjFHWTIl TTvTt5dIjs3a+zFYTw1MWAZ4pafu9Pf9h/HaEPTUKlzSZxDeMvPOcgy4EdnY8dtL01we1Ify 75izdeVA5I5w6zRXctD3CGoXBrGiItYDMqWBK9TXYto3nv/Gqr9uww7OVp71lL3NU5B3Sf/L KluHbBFvTOSzW2/SKY1Rx7vr5y+pB3x8dlAYUW6u7pRFDVDHPMWP++ywzdBfLXifLjYu559Q 6hzHTYbPAgMBAAGjgaEwgZ4wCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBaAwHQYDVR0l BBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMAsGA1UdDwQEAwIF4DAdBgNVHQ4EFgQU7aMDTdzd UPsZO6dMaXbmqp2doQUwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NhLm1pdC5lZHUvY2Ev bWl0Y2xpZW50LmNybDANBgkqhkiG9w0BAQsFAAOBgQC/dYWdWhW8tzDOax/vqKDpffMjVeT2 ITDAndaxp6RTMKo+TWczZJ3e3xaKHMmTKvvtL94l1gcxFkWwKeZY47IQB5r/6IodFek6RWMg BjoypsLaE+f/tRw3iNds+jJyrMpRqRbEIBvxMTwhYc5MQU9o4xOgg4TXPHH6nf6VAm6+TjGC A7EwggOtAgEBMIGAMGwxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNzYWNodXNldHRzMS4w LAYDVQQKEyVNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5MRUwEwYDVQQL EwxDbGllbnQgQ0EgdjECEAVOkQV3ul2IxyvozCSGhGgwDQYJYIZIAWUDBAIBBQCgggIBMBgG CSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDIxMTIxMTA1N1ow LwYJKoZIhvcNAQkEMSIEIA5sH3KIkHkAHCDOBXodvnWtFLzjJGYcbb9xOoE9xF9GMGwGCSqG SIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggq hkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgZEG CSsGAQQBgjcQBDGBgzCBgDBsMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0 czEuMCwGA1UEChMlTWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neTEVMBMG A1UECxMMQ2xpZW50IENBIHYxAhAFTpEFd7pdiMcr6MwkhoRoMIGTBgsqhkiG9w0BCRACCzGB g6CBgDBsMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEuMCwGA1UEChMl TWFzc2FjaHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neTEVMBMGA1UECxMMQ2xpZW50 IENBIHYxAhAFTpEFd7pdiMcr6MwkhoRoMA0GCSqGSIb3DQEBAQUABIIBAL9Dvsd44vPFlbJy 93OkYnqs4627NXVe5IZYGuvjUAWnD/BD2uL8lUyPEjzooCp4P6RfyJkzIoGZ3KnonAKuPGhH 3vu/QREGT507ygyO+jLEOhtXAly0p5apV/Me2To223MBkYcmMjZdO+CeWPwaOfq2ovP31liw pGJiqu2q1+GzDNiU5BI+CVXinrUHxszqFHRUnPvBtNtMYTHIkOO0aWQR/pTDu7TCzScVbLFb tUuGXUky66GRXaInaQv3RM9MrFxp5L/4uxbFYDTVs8Ao0BLj5pHLEDiJ731MeTBEn0T0WEqw J27+fBU9wtfq4NJ6SulBTl4+91uD5OzV4KhiWEwAAAAAAAA= --------------ms000107000608090308030903--