From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.devel Subject: Re: MPS and pgtk Date: Thu, 27 Jun 2024 21:07:40 +0200 Message-ID: <87h6de6w77.fsf@gmail.com> References: <878qyr6ewh.fsf@disroot.org> <86bk3m7w3e.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30482"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Gerd =?utf-8?Q?M=C3=B6llmann?= , fejfighter@gmail.com, spacibba@aol.com, avityazev@disroot.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jun 27 21:08:37 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 1sMuU1-0007l5-5F for ged-emacs-devel@m.gmane-mx.org; Thu, 27 Jun 2024 21:08:37 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sMuTD-0008Kw-Pv; Thu, 27 Jun 2024 15:07:47 -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 1sMuTC-0008Kb-Fr for emacs-devel@gnu.org; Thu, 27 Jun 2024 15:07:46 -0400 Original-Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sMuTA-00022x-Jk; Thu, 27 Jun 2024 15:07:46 -0400 Original-Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-a727d9dd367so392857266b.3; Thu, 27 Jun 2024 12:07:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719515262; x=1720120062; 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=JYmWezOKbj+NopOmW5ldpRhenKTUaCwMG9X2ME9ee9U=; b=UUIlWFpaXm1cjVTJRlG5dNudGT0UVY3KO0dLkhH6DD+qEX97wrWH+4mrDN2hNtYbAA q3SjVM6tFM6HqzmWEiXIlovMkiTXSgvKQv2Shar6DmOiV8MZMgJw+zMX131imFj1zuuR 4j7rC7n3scmhezZLnk+L3orP0YoKKiZgK29S3UIhTIAmCk3TUlbWi+gTTrlCXcxq7qu2 d9mCUmdQZRvvv7QRVzOEW/yaD9BTVNK1aUv6LL768mh5HI/LBpR9v7aautHv/46+01We uR/QRf3j7KA6tiz3IR2Yb6/4AxuvXdJxWRzUcnIVQns1aCkzSTR1kd2dTRHe9Stg6WMr t8sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719515262; x=1720120062; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JYmWezOKbj+NopOmW5ldpRhenKTUaCwMG9X2ME9ee9U=; b=ZKo7jrQFLgmwgrw1OSYtQfwW9eMt0s8vwARCQN1yOuNZzc8cgCu9mBsqZpjcJuHSt4 Qx5VRuDXfYPShnn7Zp/quuPfgENCjB4VQTMsxXbOCpewpVUHGwTPu45yaVT/7UGzKSt8 XB0l7+SnPPAl+JuRjXfxZoUCyxLcEPjcDn6K0GeCiLr9IXykHIx4QVrcwb/YKr4LLSrk 5G/eBBrzcwdFMnyD/zFZuCuNveD00wRuABGhlkz6K5M3lLGXPbu/YZOf6Q10uv6kbugm Zy/Rh44gpyGpo2+xQcdrEKA2X5//1rpPVxSX+qjUVBLM4sYcrPUVehXN8WHoe6d4SvVG GglQ== X-Forwarded-Encrypted: i=1; AJvYcCXn6RUKxy+dr0h/uYgU9jZvV5uvucITPG/zeDMhLZGN0TR/lrp1U1vnksh3tjm0sbRhTOoAfH+Bn9GeHpCLvrc/+WVL X-Gm-Message-State: AOJu0YzL3oc2nekytZZGQL801cZvhcLl2UWxMM1n9+vrzdpCKBN2TKti VKka0PJ0bhLvcIbeaGK9qRVoM07w98axTLAG0ekgf/XL+MbEC8hdmTEmhQ== X-Google-Smtp-Source: AGHT+IH9viVkPHOq6NVMlYmhG1H0zJVLmwA539g/34NvAs6UYlpft0M67cAEUWt81t9IthqMaxryrQ== X-Received: by 2002:a17:906:bcf3:b0:a6e:fb9b:6769 with SMTP id a640c23a62f3a-a7242d2ac25mr1143306266b.75.1719515261991; Thu, 27 Jun 2024 12:07:41 -0700 (PDT) Original-Received: from caladan (dial-187254.pool.broadband44.net. [212.46.187.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a72aaf1ba9dsm3694166b.29.2024.06.27.12.07.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 12:07:41 -0700 (PDT) In-Reply-To: <86bk3m7w3e.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 27 Jun 2024 09:12:21 +0300") Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=eller.helmut@gmail.com; helo=mail-ej1-x635.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-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:320780 Archived-At: --=-=-= Content-Type: text/plain On Thu, Jun 27 2024, Eli Zaretskii wrote: > Jeff's assignment is on file, so no copyright issues here. > > I installed the change on the branch. Here's another one that is needed to avoid crashes when pressing the scrollbar. The other patch is for the tty version; it has nothing to do with pgtk. --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Make-tty_list-a-root.patch >From 840e28c742a9fed9e18769703ff609d7dae2c6ee Mon Sep 17 00:00:00 2001 From: Helmut Eller Date: Thu, 27 Jun 2024 16:27:45 +0200 Subject: [PATCH 1/2] Make tty_list a root * src/igc.c (scan_tty_list, root_create_tty_list): New. (make_igc): Make tty_list an exact root. --- src/igc.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/igc.c b/src/igc.c index 6a924a654f6..c960dde3c05 100644 --- a/src/igc.c +++ b/src/igc.c @@ -48,6 +48,7 @@ #include "thread.h" #include "treesit.h" #include "puresize.h" +#include "termchar.h" #ifdef HAVE_WINDOW_SYSTEM #include TERM_HEADER #endif /* HAVE_WINDOW_SYSTEM */ @@ -1236,6 +1237,24 @@ scan_ptr_exact (mps_ss_t ss, void *start, void *end, void *closure) return MPS_RES_OK; } +static mps_res_t +scan_tty_list (mps_ss_t ss, void *start, void *end, void *closure) +{ + igc_assert (start == &tty_list); + igc_assert (end == (&tty_list) + 1); + MPS_SCAN_BEGIN (ss) + { + for (struct tty_display_info *tty = tty_list; tty; tty = tty->next) + { + IGC_FIX12_RAW (ss, &tty->terminal); + IGC_FIX12_OBJ (ss, &tty->top_frame); + IGC_FIX12_RAW (ss, &tty->previous_frame); + } + } + MPS_SCAN_END (ss); + return MPS_RES_OK; +} + /*********************************************************************** Default pad, fwd, ... ***********************************************************************/ @@ -2275,6 +2294,13 @@ root_create_terminal_list (struct igc *gc) root_create_ambig (gc, start, end, "terminal-list"); } +static void +root_create_tty_list (struct igc *gc) +{ + root_create_exact (gc, &tty_list, (&tty_list) + 1, + scan_tty_list, "tty-list"); +} + static void root_create_main_thread (struct igc *gc) { @@ -3952,6 +3978,7 @@ make_igc (void) root_create_staticvec (gc); root_create_lispsym (gc); root_create_terminal_list (gc); + root_create_tty_list (gc); root_create_main_thread (gc); root_create_exact_ptr (gc, ¤t_thread); root_create_exact_ptr (gc, &all_threads); -- 2.39.2 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0002-Fix-scrollbars-for-pgtk.patch >From ae8052a7838217bf45e1cd916b0ec8452c4623ca Mon Sep 17 00:00:00 2001 From: Helmut Eller Date: Thu, 27 Jun 2024 20:50:08 +0200 Subject: [PATCH 2/2] Fix scrollbars for pgtk * src/pgtkterm.c (xg_scroll_callback, xg_end_scroll_callback)[HAVE_MPS]: Load the scroll-bar from the cell. --- src/pgtkterm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 7279f5d863b..7ec0969a14b 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -3953,7 +3953,12 @@ xg_scroll_callback (GtkRange * range, GtkScrollType scroll, gdouble value, gpointer user_data) { int whole = 0, portion = 0; +#ifdef HAVE_MPS + struct scroll_bar **bar_cell = user_data; + struct scroll_bar *bar = *bar_cell; +#else struct scroll_bar *bar = user_data; +#endif enum scroll_bar_part part = scroll_bar_nowhere; GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_range_get_adjustment (range)); @@ -4019,7 +4024,12 @@ xg_scroll_callback (GtkRange * range, xg_end_scroll_callback (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { +#ifdef HAVE_MPS + struct scroll_bar **bar_cell = user_data; + struct scroll_bar *bar = *bar_cell; +#else struct scroll_bar *bar = user_data; +#endif bar->dragging = -1; if (WINDOWP (window_being_scrolled)) { -- 2.39.2 --=-=-=--