From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.bugs Subject: bug#25408: Remove Decorations Around Emacs Frame (Windows OS) Date: Wed, 11 Jan 2017 09:15:03 +0100 Message-ID: References: <587499E6.9030205@gmx.at> <838tqietdj.fsf@gnu.org> <587522DB.2050105@gmx.at> <831swaepnc.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a1149231aa99c5b0545cd32e2 X-Trace: blaine.gmane.org 1484122589 32005 195.159.176.226 (11 Jan 2017 08:16:29 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 11 Jan 2017 08:16:29 +0000 (UTC) Cc: 25408@debbugs.gnu.org To: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jan 11 09:16:24 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 1cRE4o-0006V1-Pw for geb-bug-gnu-emacs@m.gmane.org; Wed, 11 Jan 2017 09:16:11 +0100 Original-Received: from localhost ([::1]:52158 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cRE4t-00069x-4i for geb-bug-gnu-emacs@m.gmane.org; Wed, 11 Jan 2017 03:16:15 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49423) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cRE4k-00069q-NS for bug-gnu-emacs@gnu.org; Wed, 11 Jan 2017 03:16:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cRE4g-0002pP-NL for bug-gnu-emacs@gnu.org; Wed, 11 Jan 2017 03:16:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:33948) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cRE4g-0002pB-JG for bug-gnu-emacs@gnu.org; Wed, 11 Jan 2017 03:16:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cRE4g-0007RA-Ek for bug-gnu-emacs@gnu.org; Wed, 11 Jan 2017 03:16:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Arthur Miller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 11 Jan 2017 08:16: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.148412251228516 (code B ref 25408); Wed, 11 Jan 2017 08:16:02 +0000 Original-Received: (at 25408) by debbugs.gnu.org; 11 Jan 2017 08:15:12 +0000 Original-Received: from localhost ([127.0.0.1]:49346 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cRE3r-0007Ps-Q3 for submit@debbugs.gnu.org; Wed, 11 Jan 2017 03:15:12 -0500 Original-Received: from mail-wm0-f46.google.com ([74.125.82.46]:35580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cRE3p-0007Pc-Sp for 25408@debbugs.gnu.org; Wed, 11 Jan 2017 03:15:10 -0500 Original-Received: by mail-wm0-f46.google.com with SMTP id r126so5358459wmr.0 for <25408@debbugs.gnu.org>; Wed, 11 Jan 2017 00:15:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Qb/4rKzIqAZapOMvpnVvr9hB+23THLa6CqCPJ/Yz0Uw=; b=iz7q4qP9l5W2jaHEZQlDnz/CrOOwhdANzk+rK3u9QlOm3Oq8YL4Ej3Q+jDwZh7t5Vo oepH3K94IXkDoRQoweTCuyskvcPifGWWBTL7vPGqknfZ+SAFnoVvYacp4UVJFbfnfeUY NvQhLqaeH40da65dP8F1GpKRJz245Ep9BzT42BGWmkCGdARf6IYPORUu5SiLfXyF8W5q +9FHsk4/8D6Yf1M16dn/qngHEIbB5orZyy9CeUNSuBdHPntqmcgspYel7ahZB/Y9QMzC PqWJfis27tlj6hOYfKjPOYhDYSx3Ze25rUW/3mUez2QGGjMzqHgsPHBJ3K1laMnA7eWj I2RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Qb/4rKzIqAZapOMvpnVvr9hB+23THLa6CqCPJ/Yz0Uw=; b=NWy9Ct+Up7l7HQRY0t97IK3bAguKMWujlIyFyB5eplViwf8YTJwyGw2qUMRpzVytrz mIXv+M7ppZIqMjhmZmLWCiQUIysic0NKNWeeRIs91xN+okviGJi0FEvIrPoSksaeUj4r WM4bzbiswEtnLOE9qthrA5g97lORqBQqHzhk4vlZzdonOEaP8MMR4wN+I2UFDTBo6haQ um7dOCkxQ83xMvDL0Q9b9iCoimx7mI5DSTUC4s38/nMkLegUarmD/DdzuoaBGVOMtinL qb1a4jNVzb3WogOYhfqFJ48wl48JKvnT7wNV/fetY8b0KjKS4wT9zLz9MYuwKNASCBFj 5xZQ== X-Gm-Message-State: AIkVDXJGQbBWPQzqH+Y4MMA6ieZ3nHKWmzByDVUBhutZbSL2qne2fsIKLPyrSDhprxEZ/vDaiPR0g8Yz0o72nw== X-Received: by 10.223.136.36 with SMTP id d33mr4361360wrd.199.1484122504140; Wed, 11 Jan 2017 00:15:04 -0800 (PST) Original-Received: by 10.194.169.98 with HTTP; Wed, 11 Jan 2017 00:15:03 -0800 (PST) In-Reply-To: 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:127989 Archived-At: --001a1149231aa99c5b0545cd32e2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I am beggin of pardon, but I found that sometimes, just sometimes, even switching decorations on leaves some cosmetic issues. I took a screenshot and upload it to imgur: http://imgur.com/a/kCW8j . It is same issue as with putting decorations on. Adding that PostMessage to send wm_size after the if-else statement solves it in all cases. 2017-01-11 8:50 GMT+01:00 Arthur Miller : > Aha, my last message ended somehow in bad spot in message tree. I > appologize for inconvenience. > > 2017-01-11 8:48 GMT+01:00 Arthur Miller : > >> There is a slightly cosmetic issue with above function. When one switche= s >> back on decorations, >> the frame will not resize properly and minibuffer will be not visible. >> It's there but just >> covered by frame. Just resizing emacs framefixes it. >> >> Adding call to PostMessage(hwnd, WM_SIZE,0,0) in Martins function fixes >> it. >> >> void >> x_set_undecorated (struct frame *f, Lisp_Object new_value, Lisp_Object >> old_value) >> { >> HWND hwnd =3D FRAME_W32_WINDOW (f); >> DWORD dwStyle =3D GetWindowLong (hwnd, GWL_STYLE); >> /*Lisp_Object border_width =3D Fcdr (Fassq (Qborder_width, >> f->param_alist));*/ >> /*Lisp_Object undecorated =3D Fcdr (Fassq (Qundecorated, >> f->param_alist));*/ >> >> block_input (); >> if (!NILP (new_value) && !FRAME_UNDECORATED (f)) >> { >> dwStyle =3D (dwStyle & ~WS_THICKFRAME & ~WS_CAPTION); >> SetWindowLong (hwnd, GWL_STYLE, dwStyle); >> SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0, >> SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | >> SWP_NOACTIVATE >> | SWP_FRAMECHANGED); >> FRAME_UNDECORATED (f) =3D true; >> } >> else if (!NILP (new_value) && FRAME_UNDECORATED (f)) >> { >> SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_THICKFRAME | WS_CAPTI= ON >> | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU); >> SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0, >> SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | >> SWP_NOACTIVATE >> | SWP_FRAMECHANGED); >> PostMessage(hwnd, WM_SIZE,0,0); >> FRAME_UNDECORATED (f) =3D false; >> } >> unblock_input (); >> } >> >> >> 2017-01-11 8:24 GMT+01:00 Arthur Miller : >> >>> I appologize, I was too fast to answer, I made a bad call from >>> modify-frame-parameters >>> when I tested it. It works like a charm as you say it in english. I hav= e >>> also changed >>> the else-if statement in Martins method to else if (!NILP (new_value) &= & >>> FRAME_UNDECORATED (f)) >>> (check for !NILP) so I can switch back decorations. It works. Thanks >>> all, it was great >>> exercise to learn a bit of emacs internals and to make a simple hack. >>> >>> 2017-01-11 8:08 GMT+01:00 Arthur Miller : >>> >>>> "We call it "Losedows" or "Lose OS", because if you use it, you lose >>>> your freedom. >>>> >>>> We're glad if Emacs gives you a taste of freedom, but a taste is >>>> all it can give you. To escape from Microsoft's power, you need to >>>> stop using Losedows." >>>> >>>> Haha :-) Indeed. >>>> >>>> I do run Arch Linux otherwise, but I do some consulting with >>>> programming >>>> databases and GUIs in access & spss and I also play some games >>>> occasionally, so I still need losedows. I know I could run it in wine >>>> and >>>> pass through vga, but I feel a bit too old for that :). >>>> >>>> This was a great excursion in Emacs src code. I added above mention >>>> method to my w32fns.c, added FRAME_DECORATED() macro to frame.h >>>> a boolean_bf undecorated :1, to frame struct, initiated it to false in >>>> "make_frame" >>>> added an entry to frame_parms: {"undecorated", SYMBOL_INDEX >>>> (Qundecorated)}, >>>> added connecction to w32_frame_parm_handlers[] to x_set_undecorated at >>>> same >>>> place where symbol is declared in frame_parms (last in the list), adde= d >>>> an >>>> INLINE void fset_undecorated( ... ) to frame.h (not sure if it is >>>> needed), and now >>>> I can change my new param with lisp from emacs, but my connection seem >>>> never to be called. >>>> >>>> By the way, I think world is better without borders, so I have modifie= d >>>> Martin's >>>> x_set_undecorated to >>>> >>>> void >>>> x_set_undecorated (struct frame *f, Lisp_Object new_value, Lisp_Object >>>> old_value) >>>> { >>>> HWND hwnd =3D FRAME_W32_WINDOW (f); >>>> DWORD dwStyle =3D GetWindowLong (hwnd, GWL_STYLE); >>>> /*Lisp_Object border_width =3D Fcdr (Fassq (Qborder_width, >>>> f->param_alist));*/ >>>> /*Lisp_Object undecorated =3D Fcdr (Fassq (Qundecorated, >>>> f->param_alist));*/ >>>> >>>> block_input (); >>>> if (!NILP (new_value) && !FRAME_UNDECORATED (f)) >>>> { >>>> dwStyle =3D (dwStyle & ~WS_THICKFRAME & ~WS_CAPTION); >>>> SetWindowLong (hwnd, GWL_STYLE, dwStyle); >>>> SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0, >>>> SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | >>>> SWP_NOACTIVATE >>>> | SWP_FRAMECHANGED); >>>> FRAME_UNDECORATED (f) =3D true; >>>> } >>>> else if (NILP (new_value) && FRAME_UNDECORATED (f)) >>>> { >>>> SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_THICKFRAME | >>>> WS_CAPTION >>>> | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU); >>>> SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0, >>>> SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | >>>> SWP_NOACTIVATE >>>> | SWP_FRAMECHANGED); >>>> FRAME_UNDECORATED (f) =3D false; >>>> } >>>> unblock_input (); >>>> } >>>> >>>> So it should just switch on "undecorated" param and ignore borders (at >>>> least I hope). I am not sure where do >>>> I have to make change more to get it to work. >>>> >>>> 2017-01-10 21:39 GMT+01:00 Cl=C3=A9ment Pit--Claudel >>>> : >>>> >>>>> On 2017-01-10 13:27, Eli Zaretskii wrote: >>>>> > Then I suggest to add this to Emacs. That some wm's ignore it is n= ot >>>>> > a reason to avoid having the feature for those that don't ignore it= . >>>>> >>>>> Indeed, it would be wonderful! >>>>> >>>>> >>>> >>> >> > --001a1149231aa99c5b0545cd32e2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I am beggin of pardon, but I found that sometime= s, just sometimes, even switching
decorations on leaves some cosmetic i= ssues. I took a screenshot and upload it to
imgur: http://imgur.com/a/kCW8j . It is same issue as wi= th putting decorations on.
Adding that PostMessage to send w= m_size after the if-else statement solves it in
all cases.

2017= -01-11 8:50 GMT+01:00 Arthur Miller <arthur.miller.no1@gmail.com= >:
Ah= a, my last message ended somehow in bad spot in message tree. I
a= ppologize for inconvenience.

2017-01-11 8:4= 8 GMT+01:00 Arthur Miller <arthur.miller.no1@gmail.com>:
Th= ere is a slightly cosmetic issue with above function. When one switches bac= k on decorations,
the frame will not resize properly and minibuffe= r will be not visible. It's there but just
covered by frame. Just re= sizing emacs framefixes it.

Adding call to PostMessage(hwnd, WM_SIZ= E,0,0) in Martins function fixes it.

void
x_set_undecorated = (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
<= span class=3D"m_-831990385080963378m_-3985012240103285240gmail-im">{
=C2= =A0 HWND hwnd =3D FRAME_W32_WINDOW (f);
=C2=A0 DWORD dwStyle =3D GetWind= owLong (hwnd, GWL_STYLE);
=C2=A0 /*Lisp_Object border_width =3D F= cdr (Fassq (Qborder_width, f->param_alist));*/
=C2=A0 /*Lisp_Object u= ndecorated =3D Fcdr (Fassq (Qundecorated, f->param_alist));*/

=C2=A0 blo= ck_input ();
=C2=A0 if (!NILP (new_value) && !FRAME_UNDECORATED = (f))
=C2=A0=C2=A0=C2=A0 {
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dwSty= le =3D (dwStyle & ~WS_THICKFRAME & ~WS_CAPTION);
=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 SetWindowLong (hwnd, GWL_STYLE, dwStyle);
=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0,
= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SWP_NOSIZE | SWP_NOMOVE | SWP_NOZOR= DER | SWP_NOACTIVATE
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | SWP_FRAME= CHANGED);
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FRAME_UNDECORATED (f) =3D true;=
=C2=A0=C2=A0=C2=A0 }
=C2=A0 else if (!NILP (new_value) = && FRAME_UNDECORATED (f))
=C2=A0=C2=A0=C2=A0 {
= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS= _THICKFRAME | WS_CAPTION
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU);
=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0,
=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVA= TE
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | SWP_FRAMECHANGED);
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 PostMessage(hwnd, WM_SIZE,0,0);
<= /span>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FRAME_UNDECORATED (f) =3D false;=C2=A0=C2=A0=C2=A0 }
=C2=A0 unblock_input ();
}


= 2017-01-11 8:24 GMT+01:00 Arthur Miller <arthur.miller.no1@gmail= .com>:
I appologize, I was too fast to answer, I made a bad call from = modify-frame-parameters
when I tested it. It works like a charm as you = say it in english. I have also changed
the else-if statement in Ma= rtins method to else if (!NILP (new_value) && FRAME_UNDECORATED (f)= )
(check for !NILP) so I can switch back decorations. It works. Th= anks all, it was great
exercise to learn a bit of emacs internals= and to make a simple hack.

2017= -01-11 8:08 GMT+01:00 Arthur Miller <arthur.miller.no1@gmail.com= >:
"We call it "Losedows= " or "Lose OS", because if you use it, you lose
your freedom.

We're glad if Emacs gives you a taste of freedom, but a taste is
all it can give you.=C2=A0 To escape from Microsoft's power, you need t= o
stop using Losedows."

Haha :-) Indeed.

I do run Arch Linux otherwise, but I do some consulting with programming=
databases and GUIs in access & spss and I also play some games occasionally, so I still need losedows. I know I could run it in wine and =
pass through vga, but I feel a bit too old for that :).
<= /div>

This was a great excursion in Emacs src code. I added a= bove mention
method to my w32fns.c, added FRAME_DECORATED() macro = to frame.h
a boolean_bf undecorated :1, to frame struct, initiated= it to false in "make_frame"
added an entry to frame_par= ms: {"undecorated",=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 SYMBOL_I= NDEX (Qundecorated)},
added connecction to w32_frame_parm_handlers= [] to x_set_undecorated at same
place where symbol is declared in = frame_parms (last in the list), added an
INLINE void fset_undecorated( .= .. ) to frame.h (not sure if it is needed), and now
I can change my new= param with lisp from emacs, but my connection seem
never to = be called.

By the way, I think world is better without b= orders, so I have modified Martin's
x_set_undecorated to =

void
x_set_undecorated (struct frame *f, Lisp_Object new_v= alue, Lisp_Object old_value)
{
=C2=A0 HWND hwnd =3D FRAM= E_W32_WINDOW (f);
=C2=A0 DWORD dwStyle =3D GetWindowLong (hwnd, GWL_STYL= E);
=C2=A0 /*Lisp_Object border_width =3D Fcdr (Fassq (Qborder_wi= dth, f->param_alist));*/
=C2=A0 /*Lisp_Object undecorated =3D Fcdr (F= assq (Qundecorated, f->param_alist));*/

=C2=A0 block_input = ();
=C2=A0 if (!NILP (new_value) && !FRAME_UNDECORATED (f))
= =C2=A0=C2=A0=C2=A0 {
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dwStyle =3D (= dwStyle & ~WS_THICKFRAME & ~WS_CAPTION);
=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 SetWindowLong (hwnd, GWL_STYLE, dwStyle);
=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 SetWindowPos (hwnd, HWND_TOP, 0, 0, 0, 0,
=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP= _NOACTIVATE
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | SWP_FRAMECHANGED);=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FRAME_UNDECORATED (f) =3D true;
=C2= =A0=C2=A0=C2=A0 }
=C2=A0 else if (NILP (new_value) && FRAME_UNDE= CORATED (f))
=C2=A0=C2=A0=C2=A0 {
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SetW= indowLong (hwnd, GWL_STYLE, dwStyle | WS_THICKFRAME | WS_CAPTION
=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | WS_MAXIMIZEBOX | WS_MINIMIZEBOX |= WS_SYSMENU);
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SetWindowPos (hwnd, HWND_TO= P, 0, 0, 0, 0,
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 SWP_NOSIZE | SWP_= NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 | SWP_FRAMECHANGED);
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FRAME_UNDECOR= ATED (f) =3D false;
=C2=A0=C2=A0=C2=A0 }
=C2=A0 unblock_input ();
= }

So it should just switch on "unde= corated" param and ignore borders (at least I hope). I am not sure whe= re do
I have to make change more to get it to work.

=
2017-01-10 21:39 GMT+01:00 Cl=C3=A9ment Pit--Cla= udel <clement.pit@gmail.com>:
On 2017-01-10 13:27, Eli Zaretskii wrote:
> Then I suggest to add this to Emacs.=C2=A0 That some wm's ignore i= t is not
> a reason to avoid having the feature for those that don't ignore i= t.

Indeed, it would be wonderful!






--001a1149231aa99c5b0545cd32e2--