From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ship Mints Newsgroups: gmane.emacs.devel Subject: =?UTF-8?Q?Re=3A_Question_about_=C3=BCarent=2Dframe_changes?= Date: Wed, 18 Sep 2024 10:30:41 -0400 Message-ID: References: <9bc2af0a-d3c1-4ba6-a350-af6e2b85695d@gmx.at> <87y13phwbk.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000003431ed062265a711" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16863"; mail-complaints-to="usenet@ciao.gmane.io" Cc: martin rudalics , =?UTF-8?Q?Gerd_M=C3=B6llmann?= , Emacs Devel To: Robert Pluim Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 18 16:31:34 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sqviQ-0004B8-9G for ged-emacs-devel@m.gmane-mx.org; Wed, 18 Sep 2024 16:31:34 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sqvhz-0007VB-55; Wed, 18 Sep 2024 10:31:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sqvhx-0007UW-LF for emacs-devel@gnu.org; Wed, 18 Sep 2024 10:31:05 -0400 Original-Received: from mail-vk1-f180.google.com ([209.85.221.180]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sqvhq-0006ov-UI for emacs-devel@gnu.org; Wed, 18 Sep 2024 10:31:00 -0400 Original-Received: by mail-vk1-f180.google.com with SMTP id 71dfb90a1353d-5010322c1c1so2057824e0c.0 for ; Wed, 18 Sep 2024 07:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726669852; x=1727274652; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iHtoxJhXIA4BUBUVsXZuLsrQD3D3Zh9/nbxALjOBU/8=; b=FztCjEnunSf5k4Q/cNzFPC0Y0Ofcdcgp6rpiGkpuqHp9iCcPOoX1NEBcQjxo0KCoKJ D8B2HVNWqqXq8Cxktai/UVgpWMVaQki25R+mvM9I0Fme2S0MUhKSq41eLzheFw13M6nE 1yBkXY4h5BatLtTn47QRcpVCm8gTlculSVCCouGIqGTy9o8B4hcQg/UgAF1dV2qbkos0 L2gdIO1kJ3uCzYGtDJ8WIud48vEB9503oAEuo2PX+uVdVexkspU/tI4qYaM37oS0mVc2 26cAMLQZu9s37bSaJpu5b10r+dtY1keoR0yG1bnvsFdUhCkRgAq8MwMSr6PB+gdvZJl/ IAzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726669852; x=1727274652; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iHtoxJhXIA4BUBUVsXZuLsrQD3D3Zh9/nbxALjOBU/8=; b=v8WLcHwo5rVPEh6vqz7uisrAVRpuAKJevGLMZVyeUD8x7Lqc3TQeKKMHhHGhuK6XFR GfUG/EYXHQjlSK4dHH5jQnV1CZ6rpOpDSy1ItuXBA/VMCJkfK9FFdA9OheskHHcYdK0/ hCR5PqK8cujsdQocNuFJVrwBcfC35fvSKzlBxMndVtzySbdrmsg5W3Q0qGnmMPH0xW7m 1pRW7vztEYODAZ5ZuEZdVzRytiweTVL45o7nPtlWEjQcI+JXC4jnNXPuRwarJcfqZjYb si3KQWaz0ul0Cbv4WubHbAQn0pbLsPa6Oko3QhAMEaWpX5oVJrhS5Nqdr3rMc3gyDqgo Kisg== X-Forwarded-Encrypted: i=1; AJvYcCVXqOcAGEn1UT7ehDX3/EKj956bepYOPZjTgTukLrnWA8BnEdVGF1MnwwSoxUDNgtNAiqe7D9WjQuzvaA==@gnu.org X-Gm-Message-State: AOJu0Yw5gDd7fTBP6k0WiLDp9iF9Acu/SUCIlY/fNlV8SRsScFfBR8Kr 6wfJNWGsl8fkE6zkvhVrD+EcZ7BV/a8gC+h7lJ68ir/y8H8wgeCDCDKorh2p/+YAAbmFmRlNu+B gvURlPJGNJCii1LCEoIO6p/CiBuQ= X-Google-Smtp-Source: AGHT+IFSm//dh9GcTtkM14fkFi2F7pbgBYSXb8vC2Ejgqc0EHJ887ArZkosHKaY3wFjjAWUV2mU0RUZywGK+EHUsJz8= X-Received: by 2002:a05:6122:318f:b0:4fd:591:e30d with SMTP id 71dfb90a1353d-5032d395606mr16188810e0c.2.1726669852518; Wed, 18 Sep 2024 07:30:52 -0700 (PDT) In-Reply-To: <87y13phwbk.fsf@gmail.com> Received-SPF: pass client-ip=209.85.221.180; envelope-from=shipmints@gmail.com; helo=mail-vk1-f180.google.com X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1.047, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:323722 Archived-At: --0000000000003431ed062265a711 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Daniel Mendler's corfu at-point completion package works on tty with child frames, as an example to take a look at. On Wed, Sep 18, 2024 at 10:27=E2=80=AFAM Robert Pluim wr= ote: > >>>>> On Wed, 18 Sep 2024 16:15:56 +0200, martin rudalics > said: > > >> AFAICT from the Elisp Info docs, one is currently free to change t= he > >> parent-frame as one sees fit. That is, one can make a child a root > >> frame, a root frame a child, or change the parent of a child to > another > >> root. > >> > >> I'm currently inclined to disallow parent-frame changes on ttys > >> entirely, unless it is used for something. Couldn't find something > >> today, but maybe something is a package outside Emacs' repo, or I'= m > just > >> ont looking for the right thing. > > martin> I'm not aware of people using multiple frames on TTYs and I > have no idea > martin> whether child frames out there are even intended to be > reparented. > > I do it all the time. But obviously they each occupy the full > terminal. > > martin> Reparenting is useful because you can set up one child frame > for some > martin> special purpose, make it invisible when you don't need it, an= d > move it > martin> to another frame and make it visible there whenever you want > to. On > martin> GUIs, this approach has the advantage that you can avoid the > (at least > martin> here) costly process of setting up frame faces every time > anew. Emacs > martin> tooltips do that by default and I recall that showing a > tooltip every > martin> time incurred two entire GC cycles here. > > Would setting up frame faces be that expensive on tty? I=CA=BCd really lo= ve > to have tty child frames, even if they were not blazingly fast. > > In any case, I took a quick look at "posframe", it doesn=CA=BCt do any > reparenting that I can see. > > Robert > -- > > --0000000000003431ed062265a711 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Daniel Mendler's corfu at-point completion package works on tty with= child frames, as an example to take a look at.

On Wed, Sep 18, 2024= at 10:27=E2=80=AFAM Robert Pluim <r= pluim@gmail.com> wrote:
>>>>> On Wed, 18 Sep 2024 16:15:56 +0200, mar= tin rudalics <rudal= ics@gmx.at> said:

=C2=A0 =C2=A0 >> AFAICT from the Elisp Info docs, one is currently fr= ee to change the
=C2=A0 =C2=A0 >> parent-frame as one sees fit. That is, one can make = a child a root
=C2=A0 =C2=A0 >> frame, a root frame a child, or change the parent of= a child to another
=C2=A0 =C2=A0 >> root.
=C2=A0 =C2=A0 >>
=C2=A0 =C2=A0 >> I'm currently inclined to disallow parent-frame = changes on ttys
=C2=A0 =C2=A0 >> entirely, unless it is used for something. Couldn= 9;t find something
=C2=A0 =C2=A0 >> today, but maybe something is a package outside Emac= s' repo, or I'm just
=C2=A0 =C2=A0 >> ont looking for the right thing.

=C2=A0 =C2=A0 martin> I'm not aware of people using multiple frames = on TTYs and I have no idea
=C2=A0 =C2=A0 martin> whether child frames out there are even intended t= o be reparented.

I do it all the time. But obviously they each occupy the full
terminal.

=C2=A0 =C2=A0 martin> Reparenting is useful because you can set up one c= hild frame for some
=C2=A0 =C2=A0 martin> special purpose, make it invisible when you don= 9;t need it, and move it
=C2=A0 =C2=A0 martin> to another frame and make it visible there wheneve= r you want to.=C2=A0 On
=C2=A0 =C2=A0 martin> GUIs, this approach has the advantage that you can= avoid the (at least
=C2=A0 =C2=A0 martin> here) costly process of setting up frame faces eve= ry time anew.=C2=A0 Emacs
=C2=A0 =C2=A0 martin> tooltips do that by default and I recall that show= ing a tooltip every
=C2=A0 =C2=A0 martin> time incurred two entire GC cycles here.

Would setting up frame faces be that expensive on tty? I=CA=BCd really love=
to have tty child frames, even if they were not blazingly fast.

In any case, I took a quick look at "posframe", it doesn=CA=BCt d= o any
reparenting that I can see.

Robert
--

--0000000000003431ed062265a711--