Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 13:27:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 08:27:16 2025 Received: from localhost ([127.0.0.1]:38294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWaVo-0004G1-2J for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:27:16 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:59449) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWaVl-0004Fc-Bp for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:27:13 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so12288025e9.2 for <80032 <at> debbugs.gnu.org>; Fri, 19 Dec 2025 05:27:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766150827; x=1766755627; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dKya1K+9Bbbukw4XvUMITOoeIMtAzaj/IaGsOCFMuKg=; b=X5qi//A0nDjI6TJSdMC6FmZLzqOmcNwl/CQZYsxY0cYl/atqdG642mkBkWa6O8i2wl 3dTviAi851OC/E4/QWiXwaOn6ve/JtantMRIpmjJ3CA9VJ4blbMj0iLH0PIbf4pk3fln 0TejD3JeQxxsyENiOw/GYC5vIJIrIsT1Dy3qYQpxQXeikXuR2JRtWm9scS9TW4YCpyxM ye8hyTnhRgHYavZtOmIu1G5uwq+wMtZzs1Vpd6lFWF6J7k9C3nqpIErxWc8eETiUwqFN 29WRtdnx/JCBP3OfHKcK4y50LFiLAbNuh0tu3yhhKwDKrS1vhTe8gfsagthhopleJ4GU ci3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766150827; x=1766755627; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dKya1K+9Bbbukw4XvUMITOoeIMtAzaj/IaGsOCFMuKg=; b=frPsUxd5QRtJaBXFc0PppZzsV1B3oYc+CyQiAkH9BtMZGxmS09WzcGKGe6oVex2CBV hx1DBdzIReqO0St7T0AWPRlKWwS/mbWcvF3IYm9oYZoFc6QKDskDdgvwXARoOgUDnJPx u6XkqDw488oj5C9QKw8SRVNdj/bCQ4B16gHR08MMjzwp3Eh1S39GE03msX+aHxRWuu68 K611BLl9JS+RvkJgmQ0Dd4i7nOYh9ve4UcqEh0BbsPQss66S4CwIlNLgLKy/15f4rP7/ gxdMVbnnE3+KlNPZ3EuQfaMFVJFAtbqja/n7oX0kFEd5vi1u4wTMFVlKAEtaAdWTcWGr QSyQ== X-Forwarded-Encrypted: i=1; AJvYcCUY0M8GaAPZ+6nBueBO+TG/4igC+Bz6VCLQlpUspwXxrN/JKCX7HcdKZyqbzPkMdApJxZVHDA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwGtOLKXNFp/xdzNfZt3nkkuLytUY35YO1Ntc4wpOM5yTm80ADH v1gXq81B3Yh8U3OzhI0iKevNWVoLoVl0I66rv6l6ntCoPoc2zucjUmNvRZb3lmDF X-Gm-Gg: AY/fxX5bWYqfByDgsW+KhER7YfrV7H0wf/gqxLu7nunTa730QAM+8wVhoJY/576Ccwk Gaqm7OoZZoLFjlj+apb1IKsQsbssKdhiTKYjG26jtITwDbe0tGs8zlF9bS7z6FneC5DxVgBXvXM plRsA+OSr1YZlU5xQ/ixIQWK+njYUaSQ3Kyz1mfO/XU4WsML19oMgLxgiLUeCSt19hj9so+br0M viSExi7CmfTvrxmp/QLX1onTsOoBbuh39/Sigss+er5FlVkQY6l+gQRg1gWKU6KpuoFo90UPmWO HBlZ629Et2DQUy3n8AkAjZPfGYSINC2vquizGx7tigveKLk0o7kZCZnKc3sN1zBB4xOTA9RK12P Ap/wz7NbNFVdAiIU009ZCe/ZmNhPyNlSrQ5kVO8jf4aHP5eDWreZMqY7izTFVZW7W26JsWGJpzk QEiIECOmniAqOFF7xRdL2+5aVRkKy8CgziyULnhCO2h674LSkAiC9I8jAC7m1Z0L1O2BpxUOWs8 3Cg/kN6lKTwzD0T8x6hP84= X-Google-Smtp-Source: AGHT+IHgjLxXZefqmQWPQHibTOX+geowgyxGP7a5udEy4p3OenBWtoJ2tjsmEBjFhRQ6q0q3x56mMA== X-Received: by 2002:a05:600c:4e42:b0:477:7d94:5d0e with SMTP id 5b1f17b1804b1-47d1958fcbcmr23198965e9.27.1766150826851; Fri, 19 Dec 2025 05:27:06 -0800 (PST) Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de. [2003:e0:b709:af00:d025:addc:5327:3618]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193cba81sm43748905e9.10.2025.12.19.05.27.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Dec 2025 05:27:06 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility In-Reply-To: <86jyyi1uou.fsf@HIDDEN> References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <86ms3e1yph.fsf@HIDDEN> <m2ecoqtyzk.fsf@HIDDEN> <86jyyi1uou.fsf@HIDDEN> Date: Fri, 19 Dec 2025 14:27:05 +0100 Message-ID: <m2tsxmsity.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Cc: martin rudalics <rudalics@HIDDEN>, 80032 <at> debbugs.gnu.org >> Date: Fri, 19 Dec 2025 13:52:47 +0100 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> > IMNSHO, it is conceptually wrong to consider non-top TTY frames to be >> > "invisible". They should be considered as "obscured by other frames", >> > perhaps, but not invisible. The invisible attribute of a GUI frame >> > means something that TTY frames simply don't support, and it is >> > interpreted by various parts of Emacs, including redisplay, in a >> > certain fashion that will cause us trouble on TTY frames. >>=20 >> You mean tty root frames, right? It doesn't work for tty child frames as >> Martin already explained in another thread: > > Yes, I mean TTY root frames. (I admit I don't understand well enough > the visibility concept of child frames.) (That's easy: child frames are copied to the resulting frame matrix if they themselves and all their ancestors are visible. That's the same as what Cocoa does, for example.)
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 13:20:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 08:20:08 2025 Received: from localhost ([127.0.0.1]:38253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWaOt-0003qz-Ef for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:20:08 -0500 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]:52348) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWaOr-0003nZ-Ag for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:20:05 -0500 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-b735487129fso309066166b.0 for <80032 <at> debbugs.gnu.org>; Fri, 19 Dec 2025 05:20:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766150399; x=1766755199; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vWQnV08z1Eg88nzmpschvLGDbd3BunmGln5MQwXuwsw=; b=Xdk1sJPDk2td7aYAkSbOBgeIY6AkKUjX8SC2jlTIYNz4xhQPJeDXZnPNBM2iHmrAhk PpNcblUijsKCwW9bhq+/i2zXC/zBsuJlP6564ZOz4+J9WROul3IHikXCSeVZnQaEbpGf +b+uFpW1kJea+nagSXscYTQumCpqVUOFh3Zxor2v6WIfRKYzpEMSAt8pum2fhlkek66m cEnF1gYiF4aNxdhbJ4gwCiJQhmBzd7RJsTqx+SAF4kav4eDHfNF6iw0g0p4tqRG8C/0a TtxbNkkN7lEXX7aBwts/Da8Z0zuCb6Ggu+3kQLslO5whMNdVMmNSG0oht3kRlkk904GB 3gfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766150399; x=1766755199; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vWQnV08z1Eg88nzmpschvLGDbd3BunmGln5MQwXuwsw=; b=NlAkl87+zY1L2kMYA+kV2G0Q6dN9MJ+WHYBw9qa8pd3XxY7M5jlMc3+Z+DBW+6EnVv yy2H37UWNzecsGW2uscAQI7YLLGrFz/lctdz1xXvTBCizcjoItE+6Nzz1lEnoLQDKQAO ycX4hFKIGGTxbUU9YhfCIWcfNJ7Gq3Oymp03Lz+L9RX8bc4hXW3YIf3k5Opre6xj0LZM FiDNVY74PnA6Bl8R2VM9Hw6m5YoMsXz+ReR5e54KVz2L9g9MrCcfDEaU6/Uu6WJia29U hV+ttIDLBVcXoLGOlEdHOYgigT6IkvrJaDkkVZVPbAyY/rpzj1j3shUZmBtW8pwMu+OR BWGQ== X-Forwarded-Encrypted: i=1; AJvYcCXT2rlBRSZJ0MIDJpbfLy7xU0Eic8N7tek4SgcH+td6laKCE1eIvEchXEaV0QxEUE6/N8LqPw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxZ05bwLb+KrkTHWktY2ByEwd5eXrvF6/JTg7e0LEwq3I6+305y xY6c4bwiDR+Em/agnF5iKhSmunTS6Nso3riQg70I/dHXRuS5DL+nVZVonMvVJIHt X-Gm-Gg: AY/fxX6CC8vtt4hZVK7Anc4XbiIYiax4sb5FEc/E17M+KxIyrUkuF93Y/aQRKR3h9EC 4y8oBs448IXyO7K9dYnqySrmX0Hb9f6gVHwkGEhV3BJWGHLclHpoMe4qlIU51UV3SDyIv5B0exR mI+QVKsHPHMAcw9nE0L+yDlfB4SaDK/GN/HCnkraLvWmvvWnAHIzm1rBoco3TC11hva87sr+QmH lle6CiFNMecFLxatWi9oNqHIK8NdI6f3gJfXJPvZG+7iKHQevb2gZV1OgQvyvyr2JnTpG2KVPTu j4WjWrdlzaOGWoSKKOw0ocjoeCMwYn65q6MPzOYf07BnGB2DtzUM30iHz0dNawwvZ5nnqXTwf8p VL2r4PibpWLzTIxzi96ic3Nf+Vw80ODTG0N/MQL3vq4VZ2WtkU2oJdcVr/cTfs/wkFtYW4c/KJI PwHLYtyyMHzKgES5OJbCXzRZjy9+Sgui+7SQqeEaZ5Til9K+0mafMnTMYgBzoGpI+lWNdDSrphs agMiqhZswaG8wB0AInq4Xn0jb3kC0z3Mw== X-Google-Smtp-Source: AGHT+IFRj75mVcAbcr1Km84OqmAQesHeUMMpCHoFe0sIyp4cloue4AXAhlWHOuFmWZF+VitE7vw1tQ== X-Received: by 2002:a17:907:97c7:b0:b76:8164:88b5 with SMTP id a640c23a62f3a-b803719d432mr321020666b.46.1766150398608; Fri, 19 Dec 2025 05:19:58 -0800 (PST) Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de. [2003:e0:b709:af00:d025:addc:5327:3618]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f09149sm227469866b.47.2025.12.19.05.19.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Dec 2025 05:19:58 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility In-Reply-To: <86ike21uhy.fsf@HIDDEN> References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <m2o6nuu83b.fsf@HIDDEN> <86ldiy1y9j.fsf@HIDDEN> <m28qeytygh.fsf@HIDDEN> <86ike21uhy.fsf@HIDDEN> Date: Fri, 19 Dec 2025 14:19:56 +0100 Message-ID: <m2y0mysj5v.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org >> Date: Fri, 19 Dec 2025 14:04:14 +0100 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> >> Thanks for the pointer to candidate_frame. Do you think it would suff= ice >> >> to change the FRAME_VISIBLE_P in candidate_frame to, in the tty case >> >>=20 >> >> FRAME_VISIBLE_P (f) || is_tty_root_frame (f) >> >>=20 >> >> ? >> > >> > If all TTY frames are visible, won't that addition change nothing at >> > all? >>=20 >> Under the assumption that there were only one visible root frame (=3D=3D= top >> frame) on a terminal, that would make invisible root frames a candidate >> for next_frame and prev_frame. > > Then let's test whether a frame is a top-frame, and consider it a > candidate only if it isn't. Frame visibility is not the right > attribute to use here, IMO. > >> >> (BTW, multi-tty ignorant here, why is it checking the kboard here?=20 >> >>=20 >> >> if ((!FRAME_TERMCAP_P (c) && !FRAME_TERMCAP_P (f) >> >> && FRAME_KBOARD (c) =3D=3D FRAME_KBOARD (f)) >> >> || (FRAME_TERMCAP_P (c) && FRAME_TERMCAP_P (f) >> >> && FRAME_TTY (c) =3D=3D FRAME_TTY (f))) >> >>=20 >> >> Is that the focus thing? >> > >> > Same keyboard means the frames are on the same terminal, AFAIK. >>=20 >> So it's redundant? > > For GUI frames, it isn't, AFAIU. Note that the above only tests > FRAME_KBOARD for GUI frames. Duh, of course.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 13:17:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 08:17:43 2025 Received: from localhost ([127.0.0.1]:38193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWaMY-0003ek-Og for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:17:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41336) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vWaMW-0003e3-9u for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:17:41 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vWaMN-0003yb-DS; Fri, 19 Dec 2025 08:17:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=9eO0F9+J+1oNrydFi8nzx6QF1yQraZ51GsHDyjzMiq4=; b=hgjSm5wzEmb1idZLcWUQ 7NFJQEz5qTPDf4XMalJwM054O8xRJn5VPz5h1Ue/t/exFM8R4KOhco0badKpqbVcNcx+k0UehFkFq P84xMALA455nQN/5qoqV8tdXh1DomIiAVZG3JLRGt3bkj4waeGHyWHCHJb7x/EruxhRvfo2eJ91lf 2Lqtu8/Y7F6xUtpfjrQGyEO/A7aI55JnGYsvBiB9GUQhsOwm/PmC3N65ju2vvh6ZpCMiwEK6ai8b7 Phv1t8JxJaVP8OltF2s7T7ii4dcs3RMfbyM7jfHPhJjLpNl6LNhQ4nxqWqFbNWB5BevWKqqlyC8lj UzCRbPcFsXqL8g==; Date: Fri, 19 Dec 2025 15:17:13 +0200 Message-Id: <86ike21uhy.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m28qeytygh.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 19 Dec 2025 14:04:14 +0100) Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <m2o6nuu83b.fsf@HIDDEN> <86ldiy1y9j.fsf@HIDDEN> <m28qeytygh.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org > Date: Fri, 19 Dec 2025 14:04:14 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Thanks for the pointer to candidate_frame. Do you think it would suffice > >> to change the FRAME_VISIBLE_P in candidate_frame to, in the tty case > >> > >> FRAME_VISIBLE_P (f) || is_tty_root_frame (f) > >> > >> ? > > > > If all TTY frames are visible, won't that addition change nothing at > > all? > > Under the assumption that there were only one visible root frame (== top > frame) on a terminal, that would make invisible root frames a candidate > for next_frame and prev_frame. Then let's test whether a frame is a top-frame, and consider it a candidate only if it isn't. Frame visibility is not the right attribute to use here, IMO. > >> (BTW, multi-tty ignorant here, why is it checking the kboard here? > >> > >> if ((!FRAME_TERMCAP_P (c) && !FRAME_TERMCAP_P (f) > >> && FRAME_KBOARD (c) == FRAME_KBOARD (f)) > >> || (FRAME_TERMCAP_P (c) && FRAME_TERMCAP_P (f) > >> && FRAME_TTY (c) == FRAME_TTY (f))) > >> > >> Is that the focus thing? > > > > Same keyboard means the frames are on the same terminal, AFAIK. > > So it's redundant? For GUI frames, it isn't, AFAIU. Note that the above only tests FRAME_KBOARD for GUI frames.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 13:13:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 08:13:43 2025 Received: from localhost ([127.0.0.1]:38109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWaIh-0003Ia-CO for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:13:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54258) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vWaIZ-0003Gs-NH for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:13:40 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vWaIT-0002rl-Pe; Fri, 19 Dec 2025 08:13:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=bgyxK3hRDs4Y3KC6EelgmtjFDNym3TnKHnpa0AwXDuY=; b=fsNdset02wJBFz2R+Q2L 0mrQNnhM/rLFaOI1klFaNetKfo/+m8nFelSDh4kkw0YTIemfwLPf7MsWqOZPmXrAy39Lmz8VjyMfj 03hXPGAvkgVOFkoHSGtd8h4XVRIbQPII7tZz0RHQuO+5XlN61lKSXZLenP/MSIDReybpriapLkSOJ Er0XH0LF+rz1/mij6JS6HQmKKXJAQizeCwt7mANYNO5mhJifzTiALKBdBwM6a9dxZVKTJtKRmW/+X 0whAeMyIsenjbFCfjP9MYd1ufqZpa3e6wISB4siHd30N6qFBz7ksnIlzIkvEdDelNZD71Bl6TfWIu Mztlq+y7oXB7pA==; Date: Fri, 19 Dec 2025 15:13:05 +0200 Message-Id: <86jyyi1uou.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2ecoqtyzk.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 19 Dec 2025 13:52:47 +0100) Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <86ms3e1yph.fsf@HIDDEN> <m2ecoqtyzk.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: martin rudalics <rudalics@HIDDEN>, 80032 <at> debbugs.gnu.org > Date: Fri, 19 Dec 2025 13:52:47 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > IMNSHO, it is conceptually wrong to consider non-top TTY frames to be > > "invisible". They should be considered as "obscured by other frames", > > perhaps, but not invisible. The invisible attribute of a GUI frame > > means something that TTY frames simply don't support, and it is > > interpreted by various parts of Emacs, including redisplay, in a > > certain fashion that will cause us trouble on TTY frames. > > You mean tty root frames, right? It doesn't work for tty child frames as > Martin already explained in another thread: Yes, I mean TTY root frames. (I admit I don't understand well enough the visibility concept of child frames.) > For root frames, maybe, where "obscured" currently is "root frame != > top_frame", and is exactly what we have and do. Then let's not consider non-top TTY frames "invisible". > It's not that I'm eager to change that, expecially since the "normal" > use cases like Posframe and Corfu work very well. It's only that > playing with the top frame and visibility in do_switch_frame is really > ugly, and using the visibiligy of root frames I think could simplify > things overall. If we want to make changes in this area, let's talk about "obscured frames", and if necessary introduce a new frame attribute to support that. Overloading "frame invisibility" with this meaning will cause us trouble, since that concept was traditionally used only for GUI frames, and there it has well-understood effects that are entrenched in Emacs for a long time.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 13:04:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 08:04:26 2025 Received: from localhost ([127.0.0.1]:37966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWa9h-0002b1-F6 for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:04:26 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:45087) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWa9e-0002ad-5X for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 08:04:23 -0500 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-4308d81fdf6so847598f8f.2 for <80032 <at> debbugs.gnu.org>; Fri, 19 Dec 2025 05:04:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766149455; x=1766754255; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JLJSKQTZXa/JFTikl7b5SealfE1vhj9rkkrGROZbBFM=; b=ZJOFSPvINCFvoyWAY5Tu69eSYADyRg4mW6Rmls9CDF96lvBfAPFo0JQBOvUd9HIx40 1ovB9c2OmFAqfpEJfx2eSa9YgWeLUGDstfcXbfg60hSEaXBZrNeZujpiRlV2zWcgyFL8 YobcwywSD+eiHnkum5izsZH1tvStg8hZQBxmX9N/awBD1cnjeX1L2cJgbVfoHxQ/4eA3 dd8NP8tQz1KB+SdM2SBfwFyb1yxNp1k7ngE7VOnhBnZNICq+I3oprdm15PPWXfWN9I6H 0lfenqO0W53aUIqHd7UrxFDGlJfuaWbibj0zpT5Qj3m6Qjjb0cBCqzfn/LXdJPMGS8QM Pnyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766149455; x=1766754255; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JLJSKQTZXa/JFTikl7b5SealfE1vhj9rkkrGROZbBFM=; b=ov1GTR3afktKT1Ju7Y9C2uLhcvyzOkhsLpHM53VUSqI7S3CxcsTzgICe8+36ZMuA9N Gx6CTaQ0SWs1Pac/GlGvT/g83JEnofEywwKVgT7dyCsUBgKlu/pDzCZjpRs09NqJdk3e d6tVw/VHFxcWf1c3GTlURC+4Rf94zUEqW2bdoprbh9bprGn6SlOfuvp84K6RLm2+osce vFgHk/rpTV2nZR9L2FFcUkYwhp3QjFbocykWPs9esX01fav8s5s2kwM0QGilAOackLnw FYiGj55tnqJFlRt/yZSgMTtqeIF73q+13ktUFaCTSzG0oVJpWoxpw5FjUIHZMmzM4wcd leWw== X-Forwarded-Encrypted: i=1; AJvYcCVE2Hu91bHgZd6KA4uKvlJFCfWmOYIIVIOcDybt6hc4clJuIrwDV1VYGgv+Sm1GSbFFD/EH4A==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw7Gb4SeB7fsB7Q8ZdHH/0P98/kvSI6RkJ7GxNg6z/YT4Dj9o7b q306LTBtBjuOFrk6VW2HtvZngEoqEapnOkOjpVc3leEm2sF2YmTSscHBOckOLALE X-Gm-Gg: AY/fxX5ePOpOU+U/vt5JB7OmfbcRqFAXdZBLKm61h3qMZNHj2rLR5ftHmRpT2QqT6v4 AQd8Xb1CVN8fcmE0sVYgZ2/lhxjPJUC4AoarMiRt46mJ0PKkZYBp0qC7k44oCeb1hzxPtSC4ey4 wOVEh+1XlpF8GMaBFuUBlZn91KK3demZ8jUPqI+O6ySN/+48N4wlI1Zt/LO3uei2n1Ag3MgKK5L Ak2jVLHNivOwCRCRAZNte8cuRmeuz0k2HfW/C4SyMVsN7ViDhSgb55nsYDVH3fKVZhdkp7yeBrc wmxhNBxOnfspICZzRGZiYspp0q2k02sMykL+gxXI9ghhoE0Qmgk0CoFjVDOQlhzaoU6hJisHnMd UUvjSAUJEVSjcsnANbXjJXMCNWEGP42rJs0VY7U3wcGVzuSCxbUXLg0pG0zCZX0DA3HANEai+IO opFvSpnr+YftZpSq6Ydu+04c3qjLSCe8nTL6xtXfy1f9h76E+u8SplFJYCal6E6khdmxRSdr4+g 29HNRDF7aZ3/r2FqXEbxFA= X-Google-Smtp-Source: AGHT+IHycBrHqwsbaJuITGkZsa0ZH7uMlEkmRMI87+AEThw6pMpbHPBXTRnUw0DRocBrTx4Xshk0vw== X-Received: by 2002:a05:6000:2601:b0:430:fd84:3174 with SMTP id ffacd0b85a97d-4324e50a4b5mr3474142f8f.46.1766149455223; Fri, 19 Dec 2025 05:04:15 -0800 (PST) Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de. [2003:e0:b709:af00:d025:addc:5327:3618]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea830fesm4854844f8f.20.2025.12.19.05.04.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Dec 2025 05:04:14 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility In-Reply-To: <86ldiy1y9j.fsf@HIDDEN> References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <m2o6nuu83b.fsf@HIDDEN> <86ldiy1y9j.fsf@HIDDEN> Date: Fri, 19 Dec 2025 14:04:14 +0100 Message-ID: <m28qeytygh.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Cc: 80032 <at> debbugs.gnu.org >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Date: Fri, 19 Dec 2025 10:36:08 +0100 >>=20 >> > If we say that on a tty there is always only one visible top/root fram= e, >> > 'frame-visible-p' will return false for any other frame while on a GUI >> > such a frame may be considered visible. This will create problems for >> > all functions that investigate the visibility property of frames - in >> > particular all functions calling candidate_frame in frame.c. Then >> > 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will >> > behave differently on ttys and GUIs. We could try to handle this case >> > specially in candidate_frame but it's certainly not trivial. >>=20 >> Thanks for the pointer to candidate_frame. Do you think it would suffice >> to change the FRAME_VISIBLE_P in candidate_frame to, in the tty case >>=20 >> FRAME_VISIBLE_P (f) || is_tty_root_frame (f) >>=20 >> ? > > If all TTY frames are visible, won't that addition change nothing at > all? Under the assumption that there were only one visible root frame (=3D=3D top frame) on a terminal, that would make invisible root frames a candidate for next_frame and prev_frame. > >> (BTW, multi-tty ignorant here, why is it checking the kboard here?=20 >>=20 >> if ((!FRAME_TERMCAP_P (c) && !FRAME_TERMCAP_P (f) >> && FRAME_KBOARD (c) =3D=3D FRAME_KBOARD (f)) >> || (FRAME_TERMCAP_P (c) && FRAME_TERMCAP_P (f) >> && FRAME_TTY (c) =3D=3D FRAME_TTY (f))) >>=20 >> Is that the focus thing? > > Same keyboard means the frames are on the same terminal, AFAIK. So it's redundant?
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Gerd Möllmann <gerd.moellmann@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 12:52:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 07:52:59 2025 Received: from localhost ([127.0.0.1]:37797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWZyd-0007UC-8O for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 07:52:59 -0500 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]:50472) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWZya-0007Tt-LL for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 07:52:57 -0500 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-64b9b0b4d5dso1081301a12.1 for <80032 <at> debbugs.gnu.org>; Fri, 19 Dec 2025 04:52:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766148770; x=1766753570; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=+i50oF2bi69gsMCgM0qTYw3rKLwUKV8+Jo/WZByzbTo=; b=YuYKF0oeevHsh38zKlNGIdXr396I71/y/XpliFWMrQEVx7HfGc0i7ADw3syqF5grlx P9cezLN8iK2QqwtFUTOEElF4kVd6qtRmd9DksHVbHkwXtMP0xcSf0P4dZuALW1ERKyJa DGkJZw6tXZIMwDfpIZU6VLWX9Pcp7Qn4WmJIrygdNrcMNmEAFNBP3EnG1WW6fpYoRCiZ rG2eJXhvHviCW1gfL+RQQLA1IIju1Ytk4iDI+METciUGnnQVqYNClk6j5Pyy1mTAJ+Zf 0GiaVGqayZ+Wv5GwJhRQXYtMAXhwbxvICEuOIoE4uRK6NZ17xZnzITLnxTiHT2vqltSI 7YIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766148770; x=1766753570; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=+i50oF2bi69gsMCgM0qTYw3rKLwUKV8+Jo/WZByzbTo=; b=Q8a8mauGS0K4S7ul/zDglvxdb0H9BaOSylb+JkOUnC5MkAe/XzDIGFDriK2slo0Sfb W76OnkbFBL4hNXQmBx7Ly8gTmdiet9vd9S4uLy3mYed4znaFaX7Ev2X5QxPPCZuFMW8v Vv2xO7dfGnK4LFIO1QdJTKGrf67oBjvqwD3cqil94HTv2NJWuKfY1GdtzbFp9djzN65L UZgXXiTNeA+5BmWSYj+zeFVdLVLwFziRtCDl7QNq6O/8AqatNrNOYciZagIsJtetMMk+ 73KYNTY0gK62uYBPPjKhuMUpqpwFwusgeNE1jEY3FJt3fJROzyqlGPBXYBGUhu2G6iAK YjCA== X-Forwarded-Encrypted: i=1; AJvYcCVrgBZW5TORpB5yBuVdLYvy+ERZ3FmtCNpN7l+4sIIh+9HCpESw5EN3T7YZqfFnp9dH+M7raA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxSzwgsRa2X19rbLaozgwJFQBbu9KsNuFTNejW1qFTwNXHFIJCP TbkDmxESLxBwscnSTk9Q9xN6j2gx+UGjFEe/4NcgknS6r6MOQyK0nJngaPaR5qPA X-Gm-Gg: AY/fxX6Utm4Qbz6PRtg2/nPBk4Mepo7Wp7+PuFdGDfvxMMknEDvitRTtvhlWkfmtAP1 DnGQiqbxLijNkmZZeaQ85InXEC9A7hyQwJPjNcEl3p+d/XGOkPSf9HYFM9q/GBnIXaQpB6xbhts vlm5vGKpV+Ch7UHc6JpoPo30FQnlLhgs0slQ+wuDa90bjeHfY9/+yUvLv7jOIkpZiRi8dEmlQW+ FExvAst74vrGxsIfD7j35RwQpY6/ISpvZXi3iq/O8asLvszFQ7mKPlqTJKL7mIB5BbmeMo5TLpR 33Kp2+Z91NlOxtoLdLzKrNjUA9ev9qxjasTSJmWx4mVKidb4bl/PHadrMYcpPUbLqQ/56uNvgjX FQglTDL/q3KFQyRsyVMPx/0lN877E34A0YDEtlwgg/5sSRt1JLKuyCPVhKETgKip84dEZPQvTiB TucHvP8JyYCYdMdEIaldG9knCN2GK/9d7p9ZRb4eyHXsN5CqtzqkvvjPmyEoBD82EpCbGSBkDyr I3zIcowAlftlidIidsULzY= X-Google-Smtp-Source: AGHT+IG5BgwA441IJw9yToogJjPNbyxnKQEK0KuNL8nAKygjixnk6DztuU5rhl3SfeiorWz3SzQQ7A== X-Received: by 2002:a17:907:3ccb:b0:b7a:1bde:a01b with SMTP id a640c23a62f3a-b80372182fcmr267744366b.63.1766148769529; Fri, 19 Dec 2025 04:52:49 -0800 (PST) Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de. [2003:e0:b709:af00:d025:addc:5327:3618]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b91599844sm2106530a12.25.2025.12.19.04.52.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Dec 2025 04:52:49 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility In-Reply-To: <86ms3e1yph.fsf@HIDDEN> References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <86ms3e1yph.fsf@HIDDEN> Date: Fri, 19 Dec 2025 13:52:47 +0100 Message-ID: <m2ecoqtyzk.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 80032 Cc: martin rudalics <rudalics@HIDDEN>, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Date: Fri, 19 Dec 2025 09:56:08 +0100 >> From: martin rudalics via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> >> >> > My plan would be to simplify the handling of tty root frames so that the >> > visibility of a root frame on a terminal is identical to being the top >> > frame of a terminal. This is currently not the case. A root frame on a >> > terminal can be visible but not displayed because it's not the top frame >> > of the terminal. >> >> If we say that on a tty there is always only one visible top/root frame, >> 'frame-visible-p' will return false for any other frame while on a GUI >> such a frame may be considered visible. This will create problems for >> all functions that investigate the visibility property of frames - in >> particular all functions calling candidate_frame in frame.c. Then >> 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will >> behave differently on ttys and GUIs. We could try to handle this case >> specially in candidate_frame but it's certainly not trivial. > > Exactly. > > IMNSHO, it is conceptually wrong to consider non-top TTY frames to be > "invisible". They should be considered as "obscured by other frames", > perhaps, but not invisible. The invisible attribute of a GUI frame > means something that TTY frames simply don't support, and it is > interpreted by various parts of Emacs, including redisplay, in a > certain fashion that will cause us trouble on TTY frames. You mean tty root frames, right? It doesn't work for tty child frames as Martin already explained in another thread: > Personally, I don't really understand the semantics of "invisible > frame" when applied to TTY frames. There's no such thing, > conceptually; what we do have is a frame that is hidden behind another > one. Which means that selecting a frame makes it "visible" even if we > made it invisible, since selecting a TTY frame also raises it. You cannot hide a child frame "behind" its parent. A child frame must always be on top of its parent. So the only way to hide a child frame with its parent the top tty frame is to make the child frame invisible. For root frames, maybe, where "obscured" currently is "root frame != top_frame", and is exactly what we have and do. It's not that I'm eager to change that, expecially since the "normal" use cases like Posframe and Corfu work very well. It's only that playing with the top frame and visibility in do_switch_frame is really ugly, and using the visibiligy of root frames I think could simplify things overall. But it's fine if others disagree. Let me close this, then.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 11:56:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 06:56:06 2025 Received: from localhost ([127.0.0.1]:37152 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWZ5Z-0000pR-I1 for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 06:56:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46506) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vWZ5V-0000oA-J4 for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 06:56:04 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vWZ5P-0004Ea-PE; Fri, 19 Dec 2025 06:55:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=PltC1gVfsn5rhKIG7VMxtANSBem4l3Z1kbFoAbq2W6A=; b=NonYKK6YdTMEjOIG+Gmz xCOvHPmmWEeQerUeTB5HJ0TsiRdAtL72A5o9ZqSRq0L3yRmELAc7Ik2m5momtWFo+Jf5f2N/+mMpE XwjWiutSCvF+ikJo64dgJIzptbbl7DFCKZ9/nVjQK2XdhmlVtIEoijRn9j34md3rnFRX6Md3k7q14 mwVvv/cbJR1cq7Jy++gHv1Y+PKwpqBgIN+iwHL7mr+XyQvRMiLWdsQXmY8DhK2LOYttiuxXUTlBK6 jM0D1u735CDf1g/9qdwFU1n7c9afWzvawp/foS3Fd/zDiwpWRcZ3OrWLGgruYum1k/oki5fR7eoZ4 teZvSH/lDOtOyQ==; Date: Fri, 19 Dec 2025 13:55:52 +0200 Message-Id: <86ldiy1y9j.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2o6nuu83b.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 19 Dec 2025 10:36:08 +0100) Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> <m2o6nuu83b.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80032 Cc: rudalics@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 80032 <at> debbugs.gnu.org > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Date: Fri, 19 Dec 2025 10:36:08 +0100 > > > If we say that on a tty there is always only one visible top/root frame, > > 'frame-visible-p' will return false for any other frame while on a GUI > > such a frame may be considered visible. This will create problems for > > all functions that investigate the visibility property of frames - in > > particular all functions calling candidate_frame in frame.c. Then > > 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will > > behave differently on ttys and GUIs. We could try to handle this case > > specially in candidate_frame but it's certainly not trivial. > > Thanks for the pointer to candidate_frame. Do you think it would suffice > to change the FRAME_VISIBLE_P in candidate_frame to, in the tty case > > FRAME_VISIBLE_P (f) || is_tty_root_frame (f) > > ? If all TTY frames are visible, won't that addition change nothing at all? > (BTW, multi-tty ignorant here, why is it checking the kboard here? > > if ((!FRAME_TERMCAP_P (c) && !FRAME_TERMCAP_P (f) > && FRAME_KBOARD (c) == FRAME_KBOARD (f)) > || (FRAME_TERMCAP_P (c) && FRAME_TERMCAP_P (f) > && FRAME_TTY (c) == FRAME_TTY (f))) > > Is that the focus thing? Same keyboard means the frames are on the same terminal, AFAIK.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at 80032) by debbugs.gnu.org; 19 Dec 2025 11:46:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 06:46:31 2025 Received: from localhost ([127.0.0.1]:37052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWYwI-0000Dk-LC for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 06:46:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47970) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vWYwF-0000DV-QC for 80032 <at> debbugs.gnu.org; Fri, 19 Dec 2025 06:46:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vWYwA-0002eQ-0Z; Fri, 19 Dec 2025 06:46:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=mFElHupOnP83oUWqCj7oSar+FjOYmWdU37lt33Lub20=; b=pdw8q1VmQNTw pPPMqpC7Ve3rsNLATWQLGdohBIF4jbmlJLj4135STycgunhxeUtpHeMgLEymJJJXXRfY/WlgnjlOI zXUsqqAoctIjzaM4r+3vSG3haVs5rCGbTY2nXb8LHVVvEqQTp+INqHyGUzcSSL5JGHxDculxOE7ca BPos0RNNXSIjelgW42YQIkKg87LStM+mgNChxb8pV5jbiDFZnmj9U07vf1FS15alehCks46uJGSjs lP6sntK1QhMN6yW2miClpOEXgtOq9DtiTMkaMlPvvZWsrBbzE4woPea9Qy3QPjaVsLuRYU/Ft8OUP GndoqZQOFcUcnsdfayCnVQ==; Date: Fri, 19 Dec 2025 13:46:18 +0200 Message-Id: <86ms3e1yph.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> (bug-gnu-emacs@HIDDEN) Subject: Re: bug#80032: 31.0.50; [Internals] tty frame visibility References: <m2sed7t330.fsf@HIDDEN> <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80032 Cc: gerd.moellmann@HIDDEN, 80032 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Fri, 19 Dec 2025 09:56:08 +0100 > From: martin rudalics via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > > My plan would be to simplify the handling of tty root frames so that the > > visibility of a root frame on a terminal is identical to being the top > > frame of a terminal. This is currently not the case. A root frame on a > > terminal can be visible but not displayed because it's not the top frame > > of the terminal. > > If we say that on a tty there is always only one visible top/root frame, > 'frame-visible-p' will return false for any other frame while on a GUI > such a frame may be considered visible. This will create problems for > all functions that investigate the visibility property of frames - in > particular all functions calling candidate_frame in frame.c. Then > 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will > behave differently on ttys and GUIs. We could try to handle this case > specially in candidate_frame but it's certainly not trivial. Exactly. IMNSHO, it is conceptually wrong to consider non-top TTY frames to be "invisible". They should be considered as "obscured by other frames", perhaps, but not invisible. The invisible attribute of a GUI frame means something that TTY frames simply don't support, and it is interpreted by various parts of Emacs, including redisplay, in a certain fashion that will cause us trouble on TTY frames. There be dragons.
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 19 Dec 2025 09:36:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 04:36:32 2025
Received: from localhost ([127.0.0.1]:35745 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vWWuV-0008Tr-OT
for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 04:36:32 -0500
Received: from lists.gnu.org ([2001:470:142::17]:42872)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>)
id 1vWWuS-0008T7-Vm
for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 04:36:29 -0500
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 <gerd.moellmann@HIDDEN>)
id 1vWWuK-0002Q5-2D
for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 04:36:21 -0500
Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.90_1) (envelope-from <gerd.moellmann@HIDDEN>)
id 1vWWuH-00020F-3z
for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 04:36:18 -0500
Received: by mail-ed1-x52f.google.com with SMTP id
4fb4d7f45d1cf-64ba1a1ea06so213384a12.2
for <bug-gnu-emacs@HIDDEN>; Fri, 19 Dec 2025 01:36:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1766136970; x=1766741770; darn=gnu.org;
h=mime-version:user-agent:message-id:date:references:in-reply-to
:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
bh=90t6yr1Bf1HUCKGgsY0LCT8kf8YEWKrcENS5oAbJzSA=;
b=LJ2UDvfJaUQB4i6q2UMm5s1U2f5sRAHq0zrBRug/VLNeeiB2UPN8095WTtVzpFvVc4
jHkDMw/R3MnhZUfGl9XHE1G0XwS/sSJEQBHn7rRiTzlib4+5yQfR6D/mk88c++op8ha+
/eTQqwByolBva3T4M9Hdv1lUHt6g9q9h+yBmQb+FFKHMwlGwMQTMWqxVR7xLjv6SJmXh
sNAnRN2kztbrKxe811HKPULqBIv4i4x9yEfMDgQMJr3KNOoTRiXLuWVBlekM9PkzaUTP
cDV6S3U9dH6zlZW10rNABUHmlrMnTgUQH8TEWx/pSGBNGfth52N93A7CgG2FM6wlDaqF
LTdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1766136970; x=1766741770;
h=mime-version:user-agent:message-id:date:references:in-reply-to
:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
:date:message-id:reply-to;
bh=90t6yr1Bf1HUCKGgsY0LCT8kf8YEWKrcENS5oAbJzSA=;
b=Mb7AfbN6Ngr+5zOB/qUgWoBd89UMKB0sBLy74bcoMaYhC6PV3hlQwdB4wugZwKRQhc
mMNdDG/Z/guatyMVYNEpzXP+tNdAK2TF4ma9qL6q0G2qDPM7GhWx3Ktg8eEQsRG85VdL
BCaj6V+Lt7RMy06taGNRy3lCk+ma5mq7XlD9e+56I/DP3lfxLrvuMz3ZcMXZDlA2Urbl
kAa/syvUzm4dVTbNEyDJZQK7ctkB/3QyS2XD+fJbXXRU06zQgWPntsiKbb3/rjruxYD9
PiYK2y9dK2SsPbY3cmI1TS60XyQD01K/6md/Ils1n4hpOW1ek4UY6/L8HdIUyHTIVsGl
HMbQ==
X-Gm-Message-State: AOJu0YxdyI2JHThYpngrpFRYv9xrOkNcpeuyymZmLqMvSdzkU1iRhUGU
fEoWlyRF64ZnoXqgtkL6bq1jF55qKHc3MW6i0loWMyp/K8wOE8nehMAnYktnj6/V
X-Gm-Gg: AY/fxX65cGYsrKBJvbcTLSdIGueW+zU6fizjelC/DxwBTSjl9PRgvghYH+q0hcArm41
JjmZjKvz+JLzCJ6c/2blyO8bsdJrn7MX0DQ0TDkD1om1N1sstD01sJ3BxmMugq7AHT+5fU3W729
uOxoy2sARduY1TjjIqnrX2WofeRsX1bDYNCAPQLxNnrFF6avLuyFNYwa7PobAn5FV12JxVFakSf
FiuWZr0/OmRxjFroiOOd6hfBsGaxflo+nB/fo5wdBZSyVv+VrM0abtxSYvFqRfn7NZHIcQIg/qX
dDW21Gj2CC9HsN5vzih9zdZVrzGM34j99O9KKNA8x73pooK2anxZ0tlk91XGQFlSlC1LFuWWQP8
tdsbzprJ8x8/9R7nQA9p2QWS6wsKUXhQ54TwHQdarFnjI7G9jw8iwuNa5mV9QU2QfuSI7dVq2SS
X7/txk7GYdRzfDO6BgVtCTxQYbra5usF0MLGwHkpSFMn9bl5yX8DMtxn/Rs3FjYh9J33IWs/Jg6
ETtN0+pFkkSzJGpRoUpFjg=
X-Google-Smtp-Source: AGHT+IFRq4/53kQT09ljy55AVPwBR6pS7Y+EhCptDGYijy7RRT7xJt76363TyZo8QqQRwfMwXa6FzQ==
X-Received: by 2002:a17:907:7ea2:b0:b76:f090:777b with SMTP id
a640c23a62f3a-b8036f13dfbmr211119066b.22.1766136969691;
Fri, 19 Dec 2025 01:36:09 -0800 (PST)
Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de.
[2003:e0:b709:af00:d025:addc:5327:3618])
by smtp.gmail.com with ESMTPSA id
a640c23a62f3a-b8037a5c4dfsm186145266b.14.2025.12.19.01.36.08
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Fri, 19 Dec 2025 01:36:09 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: 31.0.50; [Internals] tty frame visibility
In-Reply-To: <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN>
References: <m2sed7t330.fsf@HIDDEN>
<cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN>
Date: Fri, 19 Dec 2025 10:36:08 +0100
Message-ID: <m2o6nuu83b.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=2a00:1450:4864:20::52f;
envelope-from=gerd.moellmann@HIDDEN; helo=mail-ed1-x52f.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.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,
RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
Cc: bug-gnu-emacs@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)
martin rudalics <rudalics@HIDDEN> writes:
>> My plan would be to simplify the handling of tty root frames so that the
>> visibility of a root frame on a terminal is identical to being the top
>> frame of a terminal. This is currently not the case. A root frame on a
>> terminal can be visible but not displayed because it's not the top frame
>> of the terminal.
>
> If we say that on a tty there is always only one visible top/root frame,
> 'frame-visible-p' will return false for any other frame while on a GUI
> such a frame may be considered visible. This will create problems for
> all functions that investigate the visibility property of frames - in
> particular all functions calling candidate_frame in frame.c. Then
> 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will
> behave differently on ttys and GUIs. We could try to handle this case
> specially in candidate_frame but it's certainly not trivial.
Thanks for the pointer to candidate_frame. Do you think it would suffice
to change the FRAME_VISIBLE_P in candidate_frame to, in the tty case
FRAME_VISIBLE_P (f) || is_tty_root_frame (f)
?
(BTW, multi-tty ignorant here, why is it checking the kboard here?
if ((!FRAME_TERMCAP_P (c) && !FRAME_TERMCAP_P (f)
&& FRAME_KBOARD (c) == FRAME_KBOARD (f))
|| (FRAME_TERMCAP_P (c) && FRAME_TERMCAP_P (f)
&& FRAME_TTY (c) == FRAME_TTY (f)))
Is that the focus thing?
)
What do you think of the general idea? I have the feeling that it would
make things easier to understand, but maybe that's just me. And it's the
only idea I have at the moment, how to remove the tty stuff from
do_switch_frame, and have a chance of getting this to work again. But
please tell me what you think.
>
>> 7. frame_redisplay_p can now be simplified and is equivalent to
>> frame_ancestors_visible_p on ttys.
>
> The frame_ancestors_visible_p thingy is mainly to make child frames
> behave in a similar way on GUIs and ttys. GUIs usually suppress the
> display of a child frame when one of its ancestors is invisible. On a
> tty that would not hinder us to display the child frame (we might have
> difficulties finding its correct position though).
Yeah, we can do whatever we want in combine_updates_for_frame. What's
currently there is what macOS does, on the same level, after producing
glyphs. Frame_redisplay_p basically optimizes producing glyphs that the
combined update doesn't display anyway.
>
> I think we'd have to investigate 'raise-frame' (tty_raise_lower_frame)
I've looked at tty_raise_frame. That one does nothing for root frames,
so that should be okay, I think.
> and 'select-frame-set-input-focus' - a focus_frame_hook will be needed
> for ttys. Only these two should be allowed to pro-actively change the
> top frame (to the root frame of a child frame when the child frame
> should be raised and/or get focus) and no one else should be allowed to
> do that. Implicitly, the top frame will also change when the old top
> frame is deleted, made invisible and (probably) lowered.
>
amke-frame-invisible is the case that uses next_frame which uses
candiate_frame. So that would need the change in candiate_frame, with
could be the is_tty_root_frame above. Right?
With the focus on ttys, I'm currently completely lost, I'm afraid,
especially in the multi-tty case.
> martin
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at submit) by debbugs.gnu.org; 19 Dec 2025 08:56:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 03:56:25 2025 Received: from localhost ([127.0.0.1]:35272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWWHg-0004ja-U8 for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 03:56:25 -0500 Received: from lists.gnu.org ([2001:470:142::17]:48622) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1vWWHe-0004iz-ON for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 03:56:23 -0500 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 <rudalics@HIDDEN>) id 1vWWHW-0000u7-98 for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 03:56:14 -0500 Received: from mout.gmx.net ([212.227.15.19]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <rudalics@HIDDEN>) id 1vWWHT-0007n0-Rn for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 03:56:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1766134570; x=1766739370; i=rudalics@HIDDEN; bh=fzcHz/JeFJVbpqOUZZnFBSvP2oA+0HFv+227tlFBZmg=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Um5lHrXBlcU+wNI/KiKE2fRXpWmoASJ6GM25g+bvHcY75ASoM0D9o4SvTfV7HJW5 qLJ+/igw4DLr2krFeDKq3lkOlKPiWZwZQYXJuElh+RiAetXJnIAZlaIaLtVVTLZTc 81WrUa46WYTP12OEMkkAay5fEhnPIIu4rMr4v/axoI2cj8OXLQgwJfKB+FnYK6d+4 PCXCegDES1GZmlmHUh50TpYtChGzIm0M6y5J8f9u7fb2oqtZ/fE0/1Bp4vqrE891u UeZOzL1Ly8ZD92DgVw1lHHUQJdJvfGRfkXcxhfkwANhLV5wWo0ld3CNo3/7pHZi6f OUd/DCbndROLZw9SKw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.124.134.126]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M3lY1-1vWn863FWV-007NYY; Fri, 19 Dec 2025 09:56:09 +0100 Message-ID: <cb6eb3af-d985-40ec-a417-bbb17f1d8ac3@HIDDEN> Date: Fri, 19 Dec 2025 09:56:08 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: 31.0.50; [Internals] tty frame visibility To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, bug-gnu-emacs@HIDDEN References: <m2sed7t330.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2sed7t330.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:+JbR5lO364zhbCXdW4Cjzn+jTUsXrWRejISxQ1Yczj8EZHXZtY4 QQWOK4rjAUYRvjz7PdHn8S7d0unf4STD58cREkQCRZsKnncS8E0glR6D9G6w4afjvz2YwyL 4YPxOGEIgDiwrLUtQ2lkMSS9GqMeLb0MOs7oyeBRwdqqvxUtRV5J73StZyIVMpTx4P3pmrN Mg2SzWTatfebJs/Lps7KA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:AUmV8pMcrXs=;04Xx9B7lyeysnH5fEnIzKEBTOf9 gFxm3oCSPkRtuyYrL2wAvG0StGiUPNao21zW5BhGFf/Kqj7cQqjBQHwnkiVcohyssBUw81VB8 x5kKW4Aoc922J9oEnApIL7f9eFNQn/UmwU23C1Asne5jUAeT2NCPGYTdZ6qPCS1LBwd/aue+Z SqGGoLdiemmtpy2KFKtFqxTDgN/8AZtleQOWTaiO9YJ8SCQpslrgsSCymg0+sfPpi4t1JZEpG zAampsv2JSJzVFeIG+SoBp2wuXgMdcQAwIyVvYpABpbUG3dgPtDRQett0RUQDf73jVRuinCtx rEwD0ufNgKYxqvE93hXg9PUigsqbnpawTOwpmh9Z6zuPxMgO5ZzrtrksSFZ6mvYj35z9LOEmf gG4z0IKTGGygqMd2ewHalTorKAy9xkUFhYbSkvA53faZG6NvG8ZCYc5JUWbkQM63O9t3VwKxW XQyseQOo2l09rgWW/Au1qO/w7EY+hMCSbY6DbMVGr02cTI/9EpDMTBNJ8vAsgc7L79jj57nnz 0cGuJ2g9RJcp/DRZlhsh5xy5VAM3/x3xbnB9nUsQ7/ST+Vw9j/gRLTHJ92cbWpGfqlx1AEYKC 7d4OJ7142Q6JKeUNrlm6+zHNnTUXiJD60Wt2WP/+taPE5UtkDaEwS9sKf0azU7TM8uqUjzNy+ QBlZPZmOBTeWkZbTvHRMcavi/v5tQ1d8h2mMcAyVsRIJ4up9MwroI3ITMeibdldSVP5wP34+C Z55bU7GA9QWS1hwiQ+FVDqApOfyDrWtHWrrGuT0ltTssu+P1PwRAJ6Mrk5ame2+UdUiJ3M1OV UZl2MePW9dOT4IL490HWDz+ktbGEmp/lR8UM5OTKVCkxZ/beJE3zTYF+ER1aEFDRY/zie0rHq Zek12f3i19e454LBfJpskGrMCNqT2fRU5rtz2/y/TwUBrE8Z56jBQhd/iiZ10VOBX+kaIHShH L3MNgdn/pZnsXmSxWJZQ48xCeIfp4aHZq65/+jhZ/HK4ViuYKl4XL9qxbsdA+m7vrPVYcqig7 taOXJBWWgsvmOMQloAE4JAXEQdj7tjLtIur6fafT+UTbt+pjCGnSdCkYUDe4vXqHh6sqAFJrn aWr3YuRa5HQ2miWYAdVGRnGDg3JwHE97hGrp+5UIFblA5c3MOXV7Euh3W0Sg6GVy3YBx6c7ox AMX5udNaFB9olrhFpeN/ruTNd7wGxoIgrA5Dktz6tq8y4NUpd4csG77MvwbCsZ46/RZzaJRvG qoS8q6sFGrCquTDiUMhAqvNXkijI26xxu4i9H7yo4ZycpV5PxtxPI8W+095K36f84bJsR1P7J YTCA4z/rQT+k3Rsyy2DLC/mtk73ETztirK8bYJrQW8TFcVQI8HN/9/p/zIE0eJBVeg3vn3aGy oKw4kwp53N+xK5B/B8cnxKdZwq4UqDXtTV3epyV1JBRTCkLzrzJiB9ksZGmorz1x7vvBSz255 SFsAsh1xIFpmRxu+VLzmtxIt8VVNz+HWDkw54l4xkxHmyUp3bCtx/4kYxKIMqBsZ/23xkq8Lb Q2PW99TGmG5hgUFuBg/pq5h+NL900KjH06NXstngaXMFX58N84bTZAr90dDZcQc2vD1yGfbDd u1IhlwCCuHGqW+7VVYLzWjYzoVT5mTRac79ROt1xR7ei6N81Fq4GWoJpkEDswmrh2alp6tzna MLEr73VQYw52tKiskQ1yxv/OR2XQDewbjisOsaDnVUUs++IRDq7/Gpnk7JqjJ1d07mrpS3wD3 7xZEYVXKvbqKVi+MaO2/+cLI/ceaI9yetXMLjcfwR1/vFrlPfj10WwiT9UevnJGIDKWkG1SPM S6WccrPRswLYY2IEwA2tDGTJ5UblLqkVg2jc02HwADacWwruTFB0ckpTRFLs8FMa72bNf7hiv KRkFhu8yzMC3Dt0carRzn9hddL2R18NT5b8qX0DBFz2c1oBODsW7/+eWPUB2r2FpmOPwGsMX0 /HeR0mEXXUq5Rb+LsCwT1wT8SbCib0WbR+gP7jH1igGc0Ei+8Dkx0wRHDIGC88kCAYvK3I91n miGJu4ZAhkLch9/fz6R4TpYDG41uFhqUyoe2JhOFn25yPuBCu5KFvThX4kPKD2ZPtzaVj24f/ T48CC781geQqeq+L6UHeybJ/FRfkA6oHHqIo5ltHTk/s3MpobSKI7Akr/fqaAVEk119UV62eL fBP+PHALFn5yd6w8QluK6NBXPDIXqqdVnifG7V5Yia6Ll21UP1GxsmjgD5zwhPhWAg6z3oYnS +cIPrOvwmcm/i/fvMlrmtCOdFUw6RklUj8lylvYvj1p3l8Jyt7Yv+ZwNGUQoq/pV1WhknvGTg Wbsc2w8Vxo7WAppFVsJvGe0d4HN38AXtpgq3L2DlkW5mElRrJ0VReLNDCH5wsQ9W0adEVrQKo 29CooDWl4/AmXVlDrXnwd/21OPvea8Ha7FuPS8wt62i2UByAWCogAwqEpWDzo2P+uITAdfFNR oiUy8BeKn11zRL7YaJ8wDWfZiXoouSJHKcF1jmJnaAEo8tfn9Kv2bvNJny4M2UXmFUM4cihRV iH6FRfXK21DvXLEY1IR3wpk6BM7OqX2SamvmcFKEjLU+lNzKWlupFcKLoqM2bd1xM4qTCJ+go Zi6uJR2rsurNF2tfaxfqYxZPXbAck/kgFda6pvkAut1TzYNVqs5cPZX0dCAq1SfpjH1X6THOL fXsgKxocvl4afpm1eErG7nryR7wq8IqACpgniO91CfcmN2+YEyULmBTw92sMV1U59EqpkmnzX //2P8VPskwgCELgajMFbi+pa5i4u8XaiI/IeqmZq4kbSx5vA+Sq/LjBhe8gkKhQa8CO0uBaxi sJCaGDVGG7Kasg4c9K/SuqnqW/z1USw5OvRpH5G62DkvG2999ZgP/mqHV6/y1Rl6o90C5wwQM baXu+TEVD3g9OBT4BwVj4u7Esk7rQ8tcgkvifWNAVMNjj3JtZPSBx10mxfJLJpEZdG+0hV8ug q2G9zxfLP3RUx8Cr3/GOaVfHVyGQFRCe8ReykhYElHq8j5CTGqaU5Wj1OTVocSYUkSmLPKPGR k1cmX5kM5gobJC1lRhCrBszsgINcTpxC0f9FGj1HKlS6x0niZhwmVqgOK9ashFNpfY9vPqeu2 6yssNlS/5DqzpE4U0VWbX+hvL9LH+wMuOgOLLocy2RaOad5ZU+Rb94hPtNPjVI+IopJrX648V fmfZT0uXWfSA9Kl2fujwNSonUg6iU187nAGQBOQ4yO9WXUwQf41LQsnRxLKi2W5cvkBPLfgUy TwC43NseOOZEPqpINHK9Djfr85CNrUNjtkdGHxUqb6ocQo+pu+5bD6sy1wbMHXvFxH1gup4f4 HECCW2MjJrYnrm5dubInqAHtsznZ21HwbPOWxiZkSk1y44ega376ZH5F3uTaQAf06VStplwrc hiHhAcrLxoeDZS9ubbj4T1mfYCi3L0UX/v5HS+1+0oVWWTJeBB1ec4ssIhMZUB7y7psSGq2NT 9tJ9CSfI9ECwzxYq2IUi5fgjH4qhOCJNgsDVzg33mCh9SobcLqdFV8bj+iT8ggfRXSLHmt/HC YHKSV9a3YnYzF06UZUANT98F40I09NU/IBAgyVD+FmIwv1OmtUV80orSm9wncM/Mhqf/paMAJ 9Zw2H7CtIKuUUXDodc/0B32VeNTDC7wHC1FZi2AfEn6SbufOKmdiCZC39RXmUysnJAqHuYHo4 psDwaQUbczd/0Uzjxu0C9P6Ueceok1FMr99UKDKuYVFMvttIyT9rraHufMyV/QIELtqpw/4pB rbrCCmYcivVqGnRAgi7PyKP+EhvWVI2QgZjHHGgqW2bmAXsz+IL3v+ijeGGTza23M2XpcQKPt tMMlalxYPw4+VbfeNlTbGcEZTv8ypEViDJVtGa31gAVLjQDB42P0jWeMIteCqL4fFbxGo/oQW NAlVTU8oCO4Hcsa35CnjA/L4W+xX22svB/4ToCQAYIe4YQRNPNbSiLjbUnJfiGShI7UVjs54f lC1u+l2WU46uS9hPEDl46DSyadPzY+kG7QnbBtsK6nlr6X8LY9NGCTUFpXHFpG1OYlxI2cnCX OoCXegMPSnmamafQqDqWjE232OAbXuKNMaHIhEvPbZNErQo51wYncJ9e5KLeiFHBw3sAnJCkd oQh1ldDDEipLxDBS+Z+mUlHQRJ/mB34punF2JIJVzp2gtm3QLe3Sa3lgKB84hNLO7+jccmTka KzIHeMkAWYeycHqU7egn+f6hP07GAW5UnHkxlwsjxdZrVM6rABczxzV6PeQU9m4smk46y9WZH c6bhb4at/GJtvbRQxM1BsRT4AG7nB2aNjux9O4vD0U9buEoliwwdtscGXSx+GlciLYRhvQDHp mJNaWazi4M6GPTQ/MNSOySc2ijxwaXxtBQw70W/H3/lwEFgeJeSwK7xaQTvaplzTX9RdUCjAw kZpeklcbDdqARIBDaE/Z1WhuYcZ+t4ulNfrNDhUj0UxddNrHfGQRGLq2lukNrv8nKiLQu7pUY zbQqlvVc56VoN4cBaiEPhq/mDP4qX1ZjwA5WK6iST5t+I5RXx5IjSdedyix8Z16b0l6OtWaJA 1C4H/wQhYcZtIvZoi/qCr18KJ7SDpGoCqoqoxPlNaACYfBv1J1ZN41vuOMi7MducpAMsJyNVy HP1ounjV+Y11/n0DBtKArtfBTxushop1h7hn3odK90Ztm6E2dOtmMIl1bSpS8HKXKisGJnnC6 IpTASgV3pdtVHOsNSvfkteGw3iZnL/D9wNDkPXMGQGLjyhI+69ywo9O6zJKnFUMHHkujOLbk1 BO3NhpS/a3GINREIRXx8O/Q1hkOsfJ2MycdgNiaXwOTbVI60ElIV3lim3k5v2d9PVvo2p3jYt wLmraw1nu+/pQhWdmiBKMV8rkhoom3z+SKwY74DJhePPn2nQrN1xFMmw3ULmcpS1jUoRiFQla 43BbEHkEiRkcfdPa2jqgHjOuNYTGjFfI9K0QQd151Cf9/K+V16EV5z1WiMO92tBDQnqmRXHwH hKQQEYSsHIuWb4+01OW1Z+XgI4SjNbocpSck4J5ZQCvYboYFV2VJCJMCBuWH8KiST+59mueV4 cwOtgXluuQXSMAFU+9W16l9CeuVfgUAZ3Tmvzdh46Y6dOIM10t4j6Ma65QRGzXGh0t8sBmU1v yc/p6Fy3r4F8VAIe0= Received-SPF: pass client-ip=212.227.15.19; envelope-from=rudalics@HIDDEN; helo=mout.gmx.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) > My plan would be to simplify the handling of tty root frames so that the > visibility of a root frame on a terminal is identical to being the top > frame of a terminal. This is currently not the case. A root frame on a > terminal can be visible but not displayed because it's not the top frame > of the terminal. If we say that on a tty there is always only one visible top/root frame, 'frame-visible-p' will return false for any other frame while on a GUI such a frame may be considered visible. This will create problems for all functions that investigate the visibility property of frames - in particular all functions calling candidate_frame in frame.c. Then 'next-frame', 'previous-frame' or 'display-buffer-use-some-window' will behave differently on ttys and GUIs. We could try to handle this case specially in candidate_frame but it's certainly not trivial. > 7. frame_redisplay_p can now be simplified and is equivalent to > frame_ancestors_visible_p on ttys. The frame_ancestors_visible_p thingy is mainly to make child frames behave in a similar way on GUIs and ttys. GUIs usually suppress the display of a child frame when one of its ancestors is invisible. On a tty that would not hinder us to display the child frame (we might have difficulties finding its correct position though). I think we'd have to investigate 'raise-frame' (tty_raise_lower_frame) and 'select-frame-set-input-focus' - a focus_frame_hook will be needed for ttys. Only these two should be allowed to pro-actively change the top frame (to the root frame of a child frame when the child frame should be raised and/or get focus) and no one else should be allowed to do that. Implicitly, the top frame will also change when the old top frame is deleted, made invisible and (probably) lowered. martin
bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.Received: (at submit) by debbugs.gnu.org; 19 Dec 2025 06:09:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 19 01:09:55 2025 Received: from localhost ([127.0.0.1]:33748 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vWTgW-00018A-Ik for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 01:09:55 -0500 Received: from lists.gnu.org ([2001:470:142::17]:51276) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWTgU-00017t-5R for submit <at> debbugs.gnu.org; Fri, 19 Dec 2025 01:09:50 -0500 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 <gerd.moellmann@HIDDEN>) id 1vWTgO-0001yo-Ry for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 01:09:44 -0500 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <gerd.moellmann@HIDDEN>) id 1vWTgN-0005k4-Ed for bug-gnu-emacs@HIDDEN; Fri, 19 Dec 2025 01:09:44 -0500 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-431048c4068so770658f8f.1 for <bug-gnu-emacs@HIDDEN>; Thu, 18 Dec 2025 22:09:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766124582; x=1766729382; darn=gnu.org; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=PeR7OINNSqvGypAFYpeN3IV0b0/t6immMP4V0QLt9Lg=; b=hRUf3Pu2dsboZnqP6SoSp8Y8yjRkIYCW/eYYmdX3MUtdwib3CNl30Zy49LraCzdfh1 4ym8NYXCh7jOQ51CHpxzAi7ekVMDJFb6L3TfiPLFdL36Fb4zxyUMdsKAfQRLPzW5KU18 xnAZBjp3AB1b2pEiDs+b3Wm39sQ8P+y04NwCmMRQmUH8CafuWDKZOmUMfzpzVX7b/Ocy iSlPdU34SEUJyOpDh/77Tz19EHkIna3q+gETm6PgETsQlIea9gPf6iibcAHaPw7OmOoy mz89vf2sDe0TEIcTKCaZgn6lAurzEfTjO8M66NOSfe3N3cP/xVYJUBXD2AhG7LJaDEUf nscQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766124582; x=1766729382; h=mime-version:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PeR7OINNSqvGypAFYpeN3IV0b0/t6immMP4V0QLt9Lg=; b=qxvv2GT+USNTU2siw3+wGGqhOgfQxpiXGrYBWIa9oTEpnV5bvDY40kuxGHZsCH3nml HmkyArrIRmd/JG1rS4J2F6fzwQPM8yGBYx5LWagtVrafao/qvk9VT6WOGKXMTtquFO3g BdDbq05B9uvQLU8Ax+Ud6+OIc41DmQfvLK7TWRTBOeX46WRej2P1jsRiJ9MjmJ8D8aJF WdPqM/bNnjPNZ5HjXzTHudI38srcFt379x56YHnn1dSgwh1IRII3GfCNj1x/VC6kQZID bWgvk9IF8I9aAhgImth+swyBkGIk+SGrkMMybJADmsKROyEyjDlIhmF4tsjUdEiCHkvM 2f7Q== X-Gm-Message-State: AOJu0YzIVME0chaxze1eZ4w+d98PONZtuf9HjeF+Lg3CST2LHjlRM3gY AalzsQwIZDdb1HKI0XH4h2rKuUEJG6cwFxlrc6AeypdG2KeRBZ5BBJEbnhtjzvD1 X-Gm-Gg: AY/fxX4aGDqID73LCZ1apsRgIPnLRyk2mbtAwbX+NGievI1lEswdhpewwcUxgtwgmz5 4nAWLAZuH/levf/v7ZUb6XV4MwnJnKe+nrHOiMUn7llr6Dz8m/w1OTmGq5LCMQWBDRqRwz1HKXQ eLxz/rARyqxFEin85KLuW/VVxdxLznZ3WyD4RUQDvUt6Z4kpyEqQQlC50X/Vwaca29rAMumBizM 1XB2hnsV+lx/usFc/AKEiD0Ezol05rUKF1WCyViOdv2LLgkhtvq0puAIyChrySARR8txD2J8LsC 55LOxUE9nc0yG7KUIg6IYBa08qdm2y3PJrUOXYkBhEoiYKV0//Y/tyty+L90jnOdOyDQYHBRGMf eBtS7sOCzRs/BgfGFF1CkDJwJ+zuLEn7GinS3hwnYm2OgXrzSsMnRms59Qpt4SxazhzZvYe2dgu LQhOZJsnpeIyVBoTKnGbdXDmnm6C+IKXSjgYd5Di7EJ8mbgnGRjMBBfLhpBeFbBhU26C4KgUdWW FLzRaI84uAKAWuNPs3ARiM= X-Google-Smtp-Source: AGHT+IFr73NQR6pywaLZThj8Tp4G/suApzRhIdJUMHAUqO4qaybcvIsYLoGGrldBlGf5BIzsBcxulg== X-Received: by 2002:a5d:64c7:0:b0:430:fcbc:dc51 with SMTP id ffacd0b85a97d-4324e417249mr1759119f8f.14.1766124581658; Thu, 18 Dec 2025 22:09:41 -0800 (PST) Received: from pro4 (p200300e0b709af00d025addc53273618.dip0.t-ipconnect.de. [2003:e0:b709:af00:d025:addc:5327:3618]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324eab2ebfsm2965405f8f.40.2025.12.18.22.09.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Dec 2025 22:09:41 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 31.0.50; [Internals] tty frame visibility X-Debbugs-Cc: Date: Fri, 19 Dec 2025 07:09:39 +0100 Message-ID: <m2sed7t330.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=gerd.moellmann@HIDDEN; helo=mail-wr1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Martin Rudalics <rudalics@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) This is about unifying tty and GUI frame handling in Emacs internals, as far as that is possible. Especially the handling of root frames on ttys is currently very different, their notion of visibility, their handling in do_switch_frame etc. The following is a description of what I would do, as far as that is clear to me, to get a discussion going. My plan would be to simplify the handling of tty root frames so that the visibility of a root frame on a terminal is identical to being the top frame of a terminal. This is currently not the case. A root frame on a terminal can be visible but not displayed because it's not the top frame of the terminal. I think this could be tackled in these steps: 1. Remove top_frame member and replace it with a function top_frame which finds a terminal's top frame by searching for its one visible root frame in the list of frames. This is a recommendation of the department of removing redundancies department. I don't think it's performance critical, and it removes the need to sync visibility and top-fraen info. This is basically the gist of it. 2. do_switch_frame must not change visibility of tty frames because that's not its business on GUIs either. (This came in in 2003 with a multi-tty commit, for unknown reasons.) 3. do_switch_frame also sets frames garbaged, as a consequence of changing the visibility of tty root frames. This is a thing for redisplay. That must be done where the visiblity of root frames is changed. 4. The whole special handling of tty frames in do_switch_frame can thus go. 5. make-frame-visible does what's necessary for changing the visibility of tty root frames (check there's only one visible, garbaging frames for thorough redisplay, which is currently in do_swith_frame, ... others?) 6. Likewise for make-frame-invisible. What are the semantics? 7. frame_redisplay_p can now be simplified and is equivalent to frame_ancestors_visible_p on ttys. ...
Gerd Möllmann <gerd.moellmann@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#80032; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.