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:02:35 -0500 Message-ID: <301ed349-64c7-12c6-d843-e73eb1e20e83@gmail.com> 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> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="pS5On0fwt7nw9vhNwlQeiGwwu71C8iPcT" X-Trace: blaine.gmane.org 1486846996 22378 195.159.176.226 (11 Feb 2017 21:03:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 11 Feb 2017 21:03:16 +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 Sat Feb 11 22:03:11 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 1ccep0-0005Gc-6F for geb-bug-gnu-emacs@m.gmane.org; Sat, 11 Feb 2017 22:03:06 +0100 Original-Received: from localhost ([::1]:49554 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccep5-0006O8-TP for geb-bug-gnu-emacs@m.gmane.org; Sat, 11 Feb 2017 16:03:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cceoy-0006O0-G8 for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 16:03:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cceow-0001Bf-Vs for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 16:03:04 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37750) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cceow-0001Bb-SU for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 16:03:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cceow-0005la-I7 for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 16:03:02 -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: Sat, 11 Feb 2017 21:03:02 +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.148684697522153 (code B ref 25408); Sat, 11 Feb 2017 21:03:02 +0000 Original-Received: (at 25408) by debbugs.gnu.org; 11 Feb 2017 21:02:55 +0000 Original-Received: from localhost ([127.0.0.1]:35949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cceoo-0005lF-RI for submit@debbugs.gnu.org; Sat, 11 Feb 2017 16:02:55 -0500 Original-Received: from mout.kundenserver.de ([212.227.17.13]:54768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cceom-0005l1-9q for 25408@debbugs.gnu.org; Sat, 11 Feb 2017 16:02:52 -0500 Original-Received: from [192.168.1.102] ([67.186.135.89]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.184]) with ESMTPSA (Nemesis) id 0MP2NL-1cWJgj48jn-006RqQ; Sat, 11 Feb 2017 22:02:43 +0100 In-Reply-To: <589F1F58.1050807@gmx.at> X-Provags-ID: V03:K0:q/WEjsQ8yB8pb8LQEayP4E4tE+YwyVBWGBg4JU7iHH9GNfP8Oyp UiiwIkhyCWoNAHkzU+Hc1QtBJfPfHB9osLHya/x3SSRDVDoXx+rgfz4gvpBEujt4uqA/f/n +e4W+zPtoIoFHg6L1oZfEXaUsgXMoikwDWnN9ct7Qd0dWReplhQ6o1fsaGdFXoGdGvSfMZr tnvCsiq3Nvp4HagIstpyg== X-UI-Out-Filterresults: notjunk:1;V01:K0:8adOnF37T94=:UK5sco2OkTL/W4gDZNSSPz KVYeAXzc3PQ69pCbqjoAD5XBbi7X/FOSd0nUcWvfvBu9RuFdt5ZiO2YX2FuAuFBAuNqiQ8fux vG7ByYhC40A9yZSCsyDvCUKpyOHcqO1hPdzToGhMSvkTxgVgRbQ/D6cIZN4f6goIdBvKaFhv2 WwKrQgF4ZzUn2z8kZ5UdsHAmuU4XgUktHDcY9ZxGbTRaa/3J1jj2+AIYvaM3SB18dzwBhPsfr ZZ13Y9xMafzst8hXpbD8emkEJ4p2wb33XUyKTx5Zvm3bpxNP8KDzGj0qSS5qO9m2WH5jxI4Eq /yzHojz16Y3ZS+2ZmHcfSGfbpvQ020tIC4dg3DGpSLikTe2LUsrjVyRNdpJeEqPbPqnc9Nnzk HyUxaw4TEPrO6NwepwJGXRmYY9mNkE1+wchl7vF2G7gaFqeV93MX8ltLYpY8Ndpojvcnr255Z wq7Bowlsum9ciPj8I8rCpVxaoJaNn6NLqU4PhNAkT17LdRSSnuNO39ktQLvpTYfWLQYKqMrzM ijmEU4h74jPtudIImDE4wknAT/vNWfRbH9izX1d+hLHbFG22TXTsGt9rJriu6hW383J0idJo6 oy6Vucc72g0gLCv+O3xqPpSD5t0s9b0pR6J3mKx8Oc/sQtzmuQkQR+EIq6FsziDnnMvtWfI1A UUPPVxmW4lSA33h8i+UHybssc92OP4cVYADAREbQR/V6DAIVRfWn8BdJNt6OW7xsExPU= 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:129250 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --pS5On0fwt7nw9vhNwlQeiGwwu71C8iPcT Content-Type: multipart/mixed; boundary="rvEqbVk3QGGsTl0bBNmqR4COWPKgqbfSx"; protected-headers="v1" From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= To: martin rudalics , Arthur Miller Cc: Eli Zaretskii , 25408@debbugs.gnu.org Message-ID: <301ed349-64c7-12c6-d843-e73eb1e20e83@gmail.com> Subject: Re: bug#25408: Remove Decorations Around Emacs Frame (Windows OS) 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> In-Reply-To: <589F1F58.1050807@gmx.at> --rvEqbVk3QGGsTl0bBNmqR4COWPKgqbfSx Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 2017-02-11 09:27, martin rudalics wrote: > If you are on GNU/Linux or Windows then please apply the attached patch= > synch-frames.diff to your current version of master and rebuild. If yo= u > succeeded doing that, start emacs -Q and continue reading. Thanks! The patch applied cleanly and everything compiled fine. > To remove a frame's decorations, use the frame parameter `undecorated' This works great. > To make a new frame undecorated use > (make-frame '((undecorated . t))) This works great too. > If everything works as intended and your only interest > was to make frames without decorations, you can finish reading here. Everything up to that point worked great :) > Usually, the position of a frame's native rectangle doesn't change when= > adding/removing decorations. If you want to change it, use the `left' > and `top' frame parameters. That works fine. > If you think you need to remove/add individual parts of the decorations= > (titlebar, buttons, external borders) post your wishes here. Some > window managers might be able to do that. I haven't needed this yet :) > The rest of this text is concerned with describing additional features.= > If some of them don't work on your system, please tell me, usually they= > need a compliant window manager as well. Thanks. Maybe this is a good time to introduce my use case: I'd like to = replace company-mode's overlay-based "tooltips" with proper tooltip-like = frames. show-x-tooltip almost works for that purpose, but not quite: mos= t importantly, there can at any time only be at most one pop-up. > To make a frame not show up on the taskbar use the > frame parameter `skip-taskbar' =E2=9C=93 > To make a new frame not receive focus initially or when deiconified, us= e > the frame parameter `no-focus-on-map' =E2=9C=93, although if I create a frame with no-focus-on-map I then need = a call to raise-frame to raise it =E2=80=94 even if its z-group is 'above= =2E Maybe when z-group is "above" the frame should be automatically rais= ed? > Usually this works but if you are using a focus follows mouse policy yo= u > might have to specify the `no-accept-focus' parameter as well as in >=20 > (make-frame '((no-focus-on-map . t) (no-accept-focus . t))) =E2=9C=93 > If you want to avoid that C-x 5 o switches to a specific frame, set > that frame's `no-other-frame' parameter as in =E2=9C=93 > A second group of parameters/functions is concerned with maintaining an= d > investigating the stacking order of frames. The `z-group' parameter > allows to put a frame in a separate group above or (not on Windows) > below all other frames that are not in the same group. For example >=20 > (set-frame-parameter nil 'z-group 'above) =E2=9C=93, although it would be nice to automatically raise the frame whe= n x-group is above. I can call raise-frame, but it doesn't work correctl= y when the frame is invisible (and setting the visibility to t before rai= sing the frame doesn't work either). > For normal (non-child) frames there's a new hook `move-frame-functions'= > called after a frame was moved so you can also synchronize the movement= s > of two top-level frames. Cool. I should use this to make sure the popup stays around. > If the functions/parameters described here work sufficiently well, I'll= > post a number of toy algorithms that show how to synchronize two frames= > in a way that always shows one frame at a specified position on top of > the other. I think this is wonderful work; thanks so much for doing all this. I've posted the code I used to test this with company. f you eval this a= nd run M-x company-tooltip--add-advice, completion should use an x frame = in addition to its regular overlay-based tooltips. This works very nicel= y, except for a few problems listed below: * Creating a frame is rather slow; the following is an excerpt of a profi= le: - make-frame 442 29= % - frame-creation-function 440 29= % - apply 440 29= % - # 440 29= % - x-create-frame-with-faces 440 29= % - face-set-after-frame-default 307 20= % - face-spec-recalc 276 18= % - make-face-x-resource-internal 217 14= % - set-face-attributes-from-resources 213 14= % - set-face-attribute-from-resource 190 12= % - face-name 126 8= % + check-face 118 7= % + face-spec-reset-face 44 2= % + face-spec-set-2 7 0= % set-face-attribute 8 0= % normal-erase-is-backspace-setup-frame = 2 0% * Frames with z-group set to 'above are not automatically raised when no-= focus-on-map is set, so I need to call x-raise-frame on them; this doesn'= t work when they are invisible (instead it makes them visible without rai= sing them, it seems). * Creating a frame / making it visible uses my WM's frame creating animat= ion =E2=80=94 is there a way to disable this (x-show-tip doesn't have it)= ? Thanks again for all this cool stuff! It would be great to use proper fra= mes for company's completion popups. --rvEqbVk3QGGsTl0bBNmqR4COWPKgqbfSx-- --pS5On0fwt7nw9vhNwlQeiGwwu71C8iPcT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYn3vwAAoJEPqg+cTm90wja+QQAJlt/9N5vdTG9qeT8+VLauCJ g9NQKQ+r36KODtciU139RIy3O3CdotS6asd7KkgYvk9NXUoUckm/vktJd31E2dhk geXKeoJ4NwgvSBMSC7bVeyoa3lKv1Z6XRHgAGmLK5M/ipGV9sZECJOoHoCu1KJAV ZTrRZUkbD0+JtCOoDW1qCGAKDUtIWzsW46W6dJTtjqENihSH+a867199w2ks2Yk/ CDXhGvRmshEMVxo8yF2rmAeNYb9DHQr5222/aQI3TO8YUvLPwYSgRh/d+G5D6Puk NR2/Fg4KSjz0ZKorHWKC6yJ7rtQmXcaR4eRvk13cEeo2q5sPbsSUFy+sBcH2QC/K ad6wW8uiYw6dEePe/in93WxrgRK0GuH1AIpIIHPmFuBJ1in88P/IMqwaUTkbGiFF AgTkt1eTcu2ztQl5UIxWlC9J41n3SE7iSuh+t0FxoFKAgfRHPh3kXJNs4x2cUTt4 UylH6bcjZOJGFjRoN/6AtUaKcD9uMZXY0e1lv8pck9WwzWs7IUrc5Zt9D6HEYaUA NIe3EbolI95juTbVMkb6I40Ybh7XMD9sMRfrHKJp1gPj3AG8MOeOTleVoyNE0TDD LyKXF/wYAn2huXaAMQqH2TpP3ZhZCObitby9DSkawKVPmX1jgW6JONiBmU0jOmm1 qNqHCrm335dl7CbXvvIy =zxN0 -----END PGP SIGNATURE----- --pS5On0fwt7nw9vhNwlQeiGwwu71C8iPcT--