From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Akira Kyle Newsgroups: gmane.emacs.devel Subject: Re: SVG widget in GNU Emacs Date: Wed, 27 Oct 2021 14:01:38 -0600 Message-ID: References: <87bl3kcrpl.fsf@yahoo.com> <83ilxrc2ys.fsf@gnu.org> <875ytrc168.fsf@yahoo.com> <83a6j3c092.fsf@gnu.org> <87wnm7al92.fsf@yahoo.com> <835ytrbx8s.fsf@gnu.org> <874k92sstk.fsf@yahoo.com> <83mtmuwtv7.fsf@gnu.org> <87pmrqr6xh.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15903"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Emacs developers To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 27 22:03:55 2021 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 1mfp9P-0003wK-9L for ged-emacs-devel@m.gmane-mx.org; Wed, 27 Oct 2021 22:03:55 +0200 Original-Received: from localhost ([::1]:41664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mfp9N-0000gX-Ub for ged-emacs-devel@m.gmane-mx.org; Wed, 27 Oct 2021 16:03:53 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mfp7T-0007if-2c for emacs-devel@gnu.org; Wed, 27 Oct 2021 16:01:55 -0400 Original-Received: from mail-lj1-f173.google.com ([209.85.208.173]:43828) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mfp7P-0001lY-Qn; Wed, 27 Oct 2021 16:01:53 -0400 Original-Received: by mail-lj1-f173.google.com with SMTP id d23so5309481ljj.10; Wed, 27 Oct 2021 13:01:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2L28GIuV4CgHrHujJb6X7d5DjNU2Jq8EBBxORt+ZwpM=; b=wBfIOzuz2l0w12VM48xzV5t8Hto66V78SB6EnTD1LRiib0yhKMJYPmE/zG7TW9GYF3 hLLzvTH9mYcdI4C7j8AZxDaWSDkkwJkRaEHqoPYjgWQSjsQfZ3ZZs1Bs/O1YcRvuz4gg 8wiXY3P6VJQgdPH6CexaxJZ//lIGmjBQy66vjfYZHx8Bofr9KH3xFIlVQIwUNdQu75sL rGCkFSQzKxjnoxlnmXobru+Gio2gGLFroHSiD/6zNFGRN1saHjJ7VgzJgkMtymiSds6R IPGOddHmDgkk9EuE18y/4lYumGrad/dimIhb/By/AUj99WQOQHOKJUL6nA+sXtqfZtWD Ss/g== X-Gm-Message-State: AOAM532Eh4z2/2r7hRlQAeKI3p3q4iUjLwXJxYvvjLEmGzTbcv4F3Qcw Br3l5yWIA2dEZxi3BTiywb5i6/5AQJp/4Q== X-Google-Smtp-Source: ABdhPJyux/Dn77T3IESNmLsWbO9L5Du0eNnG0XeuEvdK5iiaE4tJt0CjGMomqdKunIrwLgvG6sdIhg== X-Received: by 2002:a2e:7a0d:: with SMTP id v13mr34220357ljc.164.1635364909664; Wed, 27 Oct 2021 13:01:49 -0700 (PDT) Original-Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com. [209.85.167.52]) by smtp.gmail.com with ESMTPSA id x16sm2394ljh.89.2021.10.27.13.01.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 27 Oct 2021 13:01:49 -0700 (PDT) Original-Received: by mail-lf1-f52.google.com with SMTP id j9so8579557lfu.7; Wed, 27 Oct 2021 13:01:49 -0700 (PDT) X-Received: by 2002:a19:f619:: with SMTP id x25mr20285643lfe.141.1635364909234; Wed, 27 Oct 2021 13:01:49 -0700 (PDT) In-Reply-To: <87pmrqr6xh.fsf@yahoo.com> X-Gmail-Original-Message-ID: Received-SPF: pass client-ip=209.85.208.173; envelope-from=aikokyle@gmail.com; helo=mail-lj1-f173.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:278054 Archived-At: On Wed, Oct 27, 2021 at 6:25 AM Po Lu wrote: > > I don't agree with the statement that they're a dead end, as offscreen > rendering is not deprecated in GTK 3, which will be with us for the > foreseeable future. The changes introduced with GTK 4 are not relevant > for GTK 3 (and are of a more fundamental nature that put not just > offscreen rendering, but even the use of Cairo in danger). > > Fundamentally, NS xwidgets work the same way as GTK xwidgets, by > displaying in an offscreen window, and then copying the contents of said > offscreen window to widgets that are created for each displayed xwidget. This is not true. Off-screen rendering of webkit views in NS does not work. See the comment at the top of nsxwidgets. The NS xwidgets implementation functions in the same (albeit slightly less elegant way) as emacs-webkit. Namely it enforces a one to one correspondence between the webview's buffer and it's window. When trying to display the webview's buffer in two windows, NS xwidgets will message "You can't share an xwidget (webkit2) among windows." and one window's contents will be blank. emacs-webkit handles this by always moving the webview to the focused window and changing the other window to the next buffer. > That NS xwidgets (based on the same principles as GTK xwidgets), in > Akira's words, work better, shows there are no fundamental barriers > between briding GTK's rendering model and Emacs's display model. I don't think it's fair to say that just because something works between emacs and NS, that it will work between emacs and gtk. While their paradigms are similar, we cannot know how similar or dissimilar their implementations are given that we cannot inspect the source code of NS. Furthermore emacs does things differently in the impure X and gtk display code then it does in the pure gtk display code and the NS display code it was based on, especially as it concerns the display event loop.