From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Reitter Newsgroups: gmane.emacs.devel Subject: Re: 23/NS: redraws according to mouse-face are slow Date: Mon, 4 May 2009 23:37:22 -0400 Message-ID: <2E6E5869-2F70-4AF5-A917-7EA863D6BD42@gmail.com> References: <4383E9F6-9B66-4DA4-AA3C-D602EB059B97@gmail.com> <139B721E-A1B4-4256-B202-D4472C0331FB@gmail.com> <87d4aowc1l.fsf@cyd.mit.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (Apple Message framework v930.3) Content-Type: multipart/signed; boundary=Apple-Mail-48--953045564; micalg=sha1; protocol="application/pkcs7-signature" X-Trace: ger.gmane.org 1241494671 26134 80.91.229.12 (5 May 2009 03:37:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 5 May 2009 03:37:51 +0000 (UTC) Cc: 2530@emacsbugs.donarmstrong.com, Ian Eure , Adrian Robert , Emacs-Devel devel To: Chong Yidong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue May 05 05:37:41 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1M1BTQ-0005Xg-Ro for ged-emacs-devel@m.gmane.org; Tue, 05 May 2009 05:37:41 +0200 Original-Received: from localhost ([127.0.0.1]:39186 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M1BTQ-0002sN-Bg for ged-emacs-devel@m.gmane.org; Mon, 04 May 2009 23:37:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M1BTL-0002s8-5o for emacs-devel@gnu.org; Mon, 04 May 2009 23:37:35 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M1BTF-0002rw-Mo for emacs-devel@gnu.org; Mon, 04 May 2009 23:37:33 -0400 Original-Received: from [199.232.76.173] (port=37301 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M1BTF-0002rq-IC for emacs-devel@gnu.org; Mon, 04 May 2009 23:37:29 -0400 Original-Received: from mail-gx0-f176.google.com ([209.85.217.176]:38168) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M1BTF-0007qt-58 for emacs-devel@gnu.org; Mon, 04 May 2009 23:37:29 -0400 Original-Received: by gxk24 with SMTP id 24so6088438gxk.18 for ; Mon, 04 May 2009 20:37:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:cc:message-id:from:to :in-reply-to:content-type:mime-version:subject:date:references :x-mailer; bh=yqEkP+pWtIbA/ihw7V4lvWq0+RxNzWpjc78iCRQ2gy0=; b=UC42n1dSO2i5vhC5EcU49R7t3KQQnv46zNAWo2KOzfeuxNBQpAoqo7D1a+ONg17Pux PtMn5cHMcyU6EyKaaJft1J1QfTh6QA8VZmlmyuVCTN/rJkV1/TtiTYhEdV9ti+cMMOzT tV/gzcfQpT3HmGI+DujuNam3u9vKksfTDYkWc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=cc:message-id:from:to:in-reply-to:content-type:mime-version:subject :date:references:x-mailer; b=EurXDLsgp81Eni+n4PXFJ26lITAGT61gZpiLWiWExgPcj1fKaGKUam8KOZ/iBwkodE HGe/Ix2eF9QdsUXGmfTF7LQ40UAeG4z7HtGY/S46jXtUk7W4CdbvNJ1vchr9MGaFmqca RE/kpzHIud/nM3goUGmN5raB+0YB5BBxpi/Ks= Original-Received: by 10.90.26.3 with SMTP id 3mr5933986agz.27.1241494648571; Mon, 04 May 2009 20:37:28 -0700 (PDT) Original-Received: from scarlett.local (pool-71-162-19-47.pitbpa.east.verizon.net [71.162.19.47]) by mx.google.com with ESMTPS id 39sm11891562agb.71.2009.05.04.20.37.26 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 04 May 2009 20:37:27 -0700 (PDT) In-Reply-To: <87d4aowc1l.fsf@cyd.mit.edu> X-Mailer: Apple Mail (2.930.3) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:110666 Archived-At: --Apple-Mail-48--953045564 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit On May 4, 2009, at 9:53 PM, Chong Yidong wrote: > I see. It seems ns_draw_glyph_string is a lot more expensive that > x_draw_glyph_string. The show_mouse_face function assumes that the > *_draw_glyph_string operation is relatively cheap, which is why it's > called inside a loop. > > My guess is that the problem lies in the calls to ns_focus and > ns_unfocus in ns_draw_glyph_string. Right - but we still need them, at least for clipping. That said, because of the clipping, calls to ns_focus may be more expensive than desirable. We have multiple calls to ns_draw_glyph_string, often more than one for each row, but we only need one clipping for the whole frame. So, ideally we'd call ns_focus outside the loops that call ns_draw_glyph_string, but the architecture won't allow that. >> If we wrap the code in show_mouse_face in NS[Dis|En]ableScreen, the >> problem goes away for me (and it's not just delayed). Same for the >> header-line/overlay issues I reported in #2530. > > If possible, we should minimize the amount of platform-dependent code > inside xdisp.c. Could you experiment with putting these calls > somewhere > in nsterm.m, say surrounding the calls to note_mouse_highlight? > > Also, could it be ns_update_begin and ns_update_end that you want to > call, instead of NSDisableScreen and NSEnableScreen? Yes, sure, this variant works well, and it takes care of the ugly flicker as well. (However, when moving the mouse over a piece of text with (common) mouse-face property, we shouldn't need to redraw in the first place, and that should be addressed at some point, perhaps after 23.1.) http://github.com/davidswelt/aquamacs-emacs/commit/9e98aaff17dd24ffa45743163df553938815498f There are further places where we need it, e.g. when scrolling. Also, scrolling with the mouse wheel doesn't always work when the mouse is over a highlighted (mouse-faced) piece of text. Will look into this again. --Apple-Mail-48--953045564 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIFxDCCAn0w ggHmoAMCAQICED6shx13jEDrq0eL8FRq5ykwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA4MTIwOTAyMDgwMVoXDTA5MTIwOTAyMDgw MVowYjEQMA4GA1UEBBMHUmVpdHRlcjEOMAwGA1UEKhMFRGF2aWQxFjAUBgNVBAMTDURhdmlkIFJl aXR0ZXIxJjAkBgkqhkiG9w0BCQEWF2RhdmlkLnJlaXR0ZXJAZ21haWwuY29tMIGfMA0GCSqGSIb3 DQEBAQUAA4GNADCBiQKBgQDOdo6kAwlkBxUb8dj4saMbYg4SVng8CUePFn3cjjWrakBTbUVa4Z0n wlUxr7AitEeKhBy5nGhu96+jKUPrCwYNRCZ0l2ovvuGq4z1m1nZ5/c8WvFlVhieuxXMUfmb/O7D3 IojoX6iS8n5MNNU2IWNNT/AD3vOl6DKgOtOw4J9y+QIDAQABozQwMjAiBgNVHREEGzAZgRdkYXZp ZC5yZWl0dGVyQGdtYWlsLmNvbTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBQUAA4GBAIjI8yEW wkiEfA9PMgpjnD6KyCXT0iZjHhW2PkR53yZZLUoTboHnKgsFwYp/gzzIL8J5cvZaRUyMUzXDufPP dRmxxCs2jXXLDD/8bvdvOuMzqgYoFA73fAfsC8S6qUL1PayZ90J8CZHNhDwqWqOA56T+DdKUegJT sqoHKh6OnypTMIIDPzCCAqigAwIBAgIBDTANBgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3 dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEk MCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJz b25hbC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAwMFoXDTEzMDcxNjIzNTk1OVow YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAq BgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMIGfMA0GCSqGSIb3DQEB AQUAA4GNADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU 5VAKMNcCY1osiRVwjt3J8CuFWqo/cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTX p6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZcmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYBAf8C AQAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBlcnNvbmFs RnJlZW1haWxDQS5jcmwwCwYDVR0PBAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFQcml2 YXRlTGFiZWwyLTEzODANBgkqhkiG9w0BAQUFAAOBgQBIjNFQg+oLLswNo2asZw9/r6y+whehQ5aU nX9MIbj4Nh+qLZ82L8D0HFAgk3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5 jowgT2Vfldr394fWxghOrvbqNOUQGls1TXfjViF4gtwhGTXeJLHTHUb/XV9lTzGCAo8wggKLAgEB MHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhA+rIcdd4xA66tH i/BUaucpMAkGBSsOAwIaBQCgggFvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTA5MDUwNTAzMzcyM1owIwYJKoZIhvcNAQkEMRYEFKSp26NSeHkYmu6+QXLXVBNyYBKa MIGFBgkrBgEEAYI3EAQxeDB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3Vs dGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWlu ZyBDQQIQPqyHHXeMQOurR4vwVGrnKTCBhwYLKoZIhvcNAQkQAgsxeKB2MGIxCzAJBgNVBAYTAlpB MSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQPqyHHXeMQOurR4vwVGrnKTANBgkqhkiG9w0B AQEFAASBgE/5BTniXjTI6X+ZIRwYqRgq1fchoQHMpdS63xiU9xmG6/3vvHZlDwI+oauRDUSLRVg8 KvSgc76+O9FiI+nymZtlIewYpGhcXTS58tO96xsxY1EPAy1Zy88oe9YyyM0dlBz26y39kAZF2nE4 SQvFmDqXwNx8e0QAshgGRkoE2NIjAAAAAAAA --Apple-Mail-48--953045564--