From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Alan Third Newsgroups: gmane.emacs.devel Subject: Re: nsterm.m: How to prevent _inactive_ window update from overreaching. Date: Wed, 28 Nov 2018 21:31:09 +0000 Message-ID: <20181128213109.GB51965@breton.holly.idiocy.org> References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1543440597 11214 195.159.176.226 (28 Nov 2018 21:29:57 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 28 Nov 2018 21:29:57 +0000 (UTC) User-Agent: Mutt/1.10.1 (2018-07-13) Cc: emacs-devel@gnu.org To: Keith David Bershatsky Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 28 22:29:52 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gS7P2-0002i3-S6 for ged-emacs-devel@m.gmane.org; Wed, 28 Nov 2018 22:29:49 +0100 Original-Received: from localhost ([::1]:50062 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gS7R8-00087j-Uc for ged-emacs-devel@m.gmane.org; Wed, 28 Nov 2018 16:31:58 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gS7QR-00087c-TW for emacs-devel@gnu.org; Wed, 28 Nov 2018 16:31:16 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gS7QR-0008Go-9M for emacs-devel@gnu.org; Wed, 28 Nov 2018 16:31:15 -0500 Original-Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:38772) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gS7QR-0008Fy-2t for emacs-devel@gnu.org; Wed, 28 Nov 2018 16:31:15 -0500 Original-Received: by mail-wr1-x432.google.com with SMTP id v13so24332892wrw.5 for ; Wed, 28 Nov 2018 13:31:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=bdHBuRyW3EheEwNWguoEVXwIi4wlx9/Fv5wde7ciMAY=; b=L6jRBv/u+V6EhK+iJcvCL9pDWLbmVNn3G9xEcZ/q7fSX//D6MEhcLbkUrFeQ/YWlij QFTBTQE1AUIGrpeuqwU6JV5XA47r7Em13Xzo70o4ffzuvJw0zsRKOPMJpjpAfA1AXA/s bdale1PgG9yZNkKYi7+b24Yj8t7YqfoOjKCeT0tlR6A33SnBG1aEZTsMLKVc04eba8zp p3IY8gpbChcQHX65sFT3gwpRJOEr2Mq9xkPIbDlmccmu5GiLcjFFF37q2VlOCodIZS8V r/LnSKIE4CBdUbqnbA9UnVBcjkSkKGmHZjDOQUqhEv5WfN73udgbOCJWskIUaolGh5pp 1Evg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=bdHBuRyW3EheEwNWguoEVXwIi4wlx9/Fv5wde7ciMAY=; b=toAXw/pijN66A5XNaxh+WsfoAu3USl6nEDEgWzRD4yIkzq5W+lbtBRyuOwcOv91kuC jGuTscDPWvNOjEm5WfFBHkp7AQlZscEKGm7YgU0cFZrHG+Iif71aEDX8V55L8fj0Cdiq UUFUi0SfmuXKeTB4XXhvofDra1QYqx5QLxwcFB1FG3d89tr2wW6sMCJSdc50HrXo5UoM 6iBi7HUfpcRaJuzRo+21cRS7OUG70TRdoRN5FKBfFmfr/j1uQ7WyDys1nfNysfXxf3iU p2O/UeFqEBmO6dNWot8jLFSCv5zLI3Vh+VEuQsdNz7YAmnBRDWpChc/ZVQ56lUYkxB+p OwgA== X-Gm-Message-State: AA+aEWYb6ji9/0NshFrYYnOp8PINMblbqXRJ80ASg/cjezKLGqV7k8r5 nUxOtrhuogqMjUOo0ksDC+sg7xzx X-Google-Smtp-Source: AFSGD/UA557xDVti7dW8s8FSRaRQAyCKLA3BSX9kHYUoN6B2LZYo6zsW0iKY+XxVr4KWbdyOgYvO7Q== X-Received: by 2002:adf:e247:: with SMTP id n7mr31142498wri.205.1543440673724; Wed, 28 Nov 2018 13:31:13 -0800 (PST) Original-Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-c9df-9326-c7a0-4e0c.holly.idiocy.org. [2001:8b0:3f8:8129:c9df:9326:c7a0:4e0c]) by smtp.gmail.com with ESMTPSA id b129sm77616wmd.24.2018.11.28.13.31.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 13:31:12 -0800 (PST) Content-Disposition: inline In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::432 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:231499 Archived-At: On Mon, Nov 26, 2018 at 08:58:59PM -0800, Keith David Bershatsky wrote: > > The present design calculates and draws/erases fake cursors based > upon particular visible windows that get updated during redisplay, > rather than rectangles within a particular window or set of windows. > If I am understanding your comments correctly, it sounds like a new > rectangle system of fake cursor calculation and drawing/erasing of > fake cursors would need to be designed (solely for the benefit of > MacOS Mojave users). It’s not new and it’s not solely for Mojave. It’s the ‘expose’ functionality which comes into use when, say, one window is partially covering another, but is then removed. The GUI toolkit fires an ‘expose event’ for the area that has just been uncovered (a rectangle), and the application redraws that area. You can find the code in xdisp.c beginning with the function expose_frame. What makes this particularly noticeable with the NS port now is that we’re using it as the primary drawing mechanism as Mojave has removed the previously used method. > Or, at the very least, calculate fake cursors > once for each visible window (where fake cursors are active) and > then loop through cached coordinates when a rectangle is drawn to > see if any fake cursors are contained within -- if so, then > draw/erase fake cursors within that rectangle ‘expose_window’ appears to redraw the cursor in exposed windows, so that may be a good place to look. FWIW I asked about how the crosshair is drawn (since that was what you were discussing originally) but you only talked about multiple cursors. Am I to assume then that the crosshair drawing is tightly integrated with the multiple cursors? -- Alan Third