From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Evgeny Zajcev Newsgroups: gmane.emacs.devel Subject: Re: Hollow cursor under images Date: Mon, 27 Jan 2020 15:54:56 +0300 Message-ID: References: <83bm2qea01.fsf@gnu.org> <20190304223605.GA22198@breton.holly.idiocy.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f23401059d1e9d05" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="5050"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , emacs-devel To: Alan Third Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Jan 27 13:55:45 2020 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 1iw3vd-0001F2-47 for ged-emacs-devel@m.gmane-mx.org; Mon, 27 Jan 2020 13:55:45 +0100 Original-Received: from localhost ([::1]:44588 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw3vc-0000H7-5z for ged-emacs-devel@m.gmane-mx.org; Mon, 27 Jan 2020 07:55:44 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42767) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iw3v7-0008Cv-Pi for emacs-devel@gnu.org; Mon, 27 Jan 2020 07:55:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iw3v6-0002Wx-8o for emacs-devel@gnu.org; Mon, 27 Jan 2020 07:55:13 -0500 Original-Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]:45496) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iw3v3-0002V9-RS; Mon, 27 Jan 2020 07:55:10 -0500 Original-Received: by mail-lj1-x22f.google.com with SMTP id j26so10496216ljc.12; Mon, 27 Jan 2020 04:55:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1R439yeF9Mm5P1TJRccB2TUPjw0XapRx0VP82bpmznQ=; b=mDe8tumrIVpJnff9gDow5kDQfzj+dSKEfblPzKgK0dJWsOQL/g0dN3Gjke6F0RWXCZ 9OV++L6AcftXZYOEAfHfpUL4S6+qXFKX4oZTKLcm3/pkY8nH/S9VWcfGmlttWFI1pXeN KHz/OcHccHhGC3ZZ+Kw1ShsPocpzUwvybg2R1+fchoFAESEjAH+dF/NzLxxJJn6k9ha9 vsURGX06mG9bCHd0GXB6X7rjFwsHZ/l2jxNrDFtPsVOZkzCeauTMjMbIGQw9WuBQAbbz w3moBFVSMFJKPbsv0N14ITJLDOVZhmrIWoYejU5aBjScExS7Pb8phGygVU0CHBbEw6fQ tH6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1R439yeF9Mm5P1TJRccB2TUPjw0XapRx0VP82bpmznQ=; b=UXXPYuHx2to13/TB2s561goGqD7hV+PCw1LpoHDGC/rHuMmOED1PkCjCyR+RL9ZoUT X4koTNxkB2A3qt1M1N1qNrylyKFZig7NnLoWNU5S69ne1X6L9DOER0S+hAhYWHUGs/L6 delR5/+Z6XcPkE+9CDXW7BEJTzHKx2RPlNnaUAusf1U5CLrwJmv0uiP4Vw9dNRAwHlG/ zMixwl3A/UvTdbIoiTDTUhIE2jse8PCnf+CFuEqtIYEReN12k9dpksQBJmnmoLo8k0pU v8JSnzKMd25I9U8ohKs82YNNsbP6dieAUUc/1T1eqhrZnYLz5qUDGyFfcnidMJtZJOBC wQLw== X-Gm-Message-State: APjAAAUlMq1fKHUrmlfJEeFHdEF1vXyIdx7x5rW0znNTt3xIV0rO2J38 9mTeHUUlGbhSf9DHIC6Hu6OZaBXzzJT4lbF90yc= X-Google-Smtp-Source: APXvYqyqAMJSh31/a0ovC0MFfcpmgFnqBznJ5rJNJaBXXRbhszfmq2zEFfkPv2Cz6bD0YP/OngoAmIBzo0hSM+zbmUg= X-Received: by 2002:a2e:990d:: with SMTP id v13mr3906660lji.47.1580129708018; Mon, 27 Jan 2020 04:55:08 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::22f 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:244669 Archived-At: --000000000000f23401059d1e9d05 Content-Type: multipart/alternative; boundary="000000000000f23400059d1e9d03" --000000000000f23400059d1e9d03 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =D1=81=D0=B1, 14 =D1=81=D0=B5=D0=BD=D1=82. 2019 =D0=B3. =D0=B2 14:48, Evgen= y Zajcev : > > > =D0=B2=D1=82, 5 =D0=BC=D0=B0=D1=80. 2019 =D0=B3. =D0=B2 13:19, Evgeny Zaj= cev : > >> [...] >> > In my case 32 for width is the trigger and `(frame-char-height) =3D=3D 53= ' for >> height triggers the hollow cursor behaviour. >> >> Looks like a bug >> > > I've found this in xdisp.c: > > .... > if (cursor_type =3D=3D FILLED_BOX_CURSOR) > { > /* Using a block cursor on large images can be very annoying. > So use a hollow cursor for "large" images. > If image is not transparent (no mask), also use hollow cursor. */ > struct image *img =3D IMAGE_OPT_FROM_ID (f, glyph->u.img_id); > if (img !=3D NULL && IMAGEP (img->spec)) > { > /* Arbitrarily, interpret "Large" as >32x32 and >NxN > where N =3D size of default frame font size. > This should cover most of the "tiny" icons people may use. */ > if (!img->mask > || img->width > max (32, WINDOW_FRAME_COLUMN_WIDTH (w)) > || img->height > max (32, WINDOW_FRAME_LINE_HEIGHT (w))) > cursor_type =3D HOLLOW_BOX_CURSOR; > } > .... > > Maybe introduce some property in image spec to control cursor behaviour? > Or make customizable definition for "tiny" icons? > > Thanks > This patch implements (box . WIDTH) cursor type, allowing user to define his own notion for "Large" image Could you please include it into master Thanks --=20 lg --000000000000f23400059d1e9d03 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
=D1=81=D0=B1, 14 =D1=81=D0=B5=D0=BD= =D1=82. 2019 =D0=B3. =D0=B2 14:48, Evgeny Zajcev <lg.zevlg@gmail.com>:


=D0= =B2=D1=82, 5 =D0=BC=D0=B0=D1=80. 2019 =D0=B3. =D0=B2 13:19, Evgeny Zajcev &= lt;lg.zevlg@gmail.c= om>:
[...]
In my case 32 for width is the trigger and `(frame-char-= height) =3D=3D 53' for height triggers=C2=A0the hollow cursor behaviour= .

Looks like a bug

I've found this in xdis= p.c:

....
=C2=A0 if (cursor_type = =3D=3D FILLED_BOX_CURSOR)
=C2=A0 =C2=A0{
=C2=A0 =C2=A0 =C2=A0/* U= sing a block cursor on large images can be very annoying.
So use a ho= llow cursor for "large" images.
If image is not transparent= (no mask), also use hollow cursor. =C2=A0*/
=C2=A0 =C2=A0 =C2=A0struc= t image *img =3D IMAGE_OPT_FROM_ID (f, glyph->u.img_id);
=C2=A0 =C2= =A0 =C2=A0if (img !=3D NULL && IMAGEP (img->spec))
{
= =C2=A0/* Arbitrarily, interpret "Large" as >32x32 and >NxN<= br> =C2=A0 =C2=A0 where N =3D size of default frame font size.
=C2= =A0 =C2=A0 This should cover most of the "tiny" icons people may = use. =C2=A0*/
=C2=A0if (!img->mask
=C2=A0 =C2=A0 =C2=A0|| im= g->width > max (32, WINDOW_FRAME_COLUMN_WIDTH (w))
=C2=A0 =C2= =A0 =C2=A0|| img->height > max (32, WINDOW_FRAME_LINE_HEIGHT (w))) =C2=A0 =C2=A0cursor_type =3D HOLLOW_BOX_CURSOR;
}
....

Maybe introduce some property in image spec to cont= rol cursor behaviour?=C2=A0 Or make customizable definition for "tiny&= quot; icons?

Thanks
=

This patch implements (box . WIDTH) cursor type, allowi= ng user to define his own notion for "Large" image

=
Could you please include it into master

Thanks

--
lg
--000000000000f23400059d1e9d03-- --000000000000f23401059d1e9d05 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Support-for-box-.-WIDTH-cursor-type.patch" Content-Disposition: attachment; filename="0001-Support-for-box-.-WIDTH-cursor-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k5wgdwr20 RnJvbSA2NDA2ZDE5OGU5ZjNmNWIyZDkzOTg3ZWQwZmQ0ZmUyMmJkNTkwNjI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWpjZXYgRXZnZW55IDx6ZXZsZ0B5YW5kZXgucnU+CkRhdGU6 IE1vbiwgMjcgSmFuIDIwMjAgMTU6NDk6NDYgKzAzMDAKU3ViamVjdDogW1BBVENIXSAqIFN1cHBv cnQgZm9yIChib3ggLiBXSURUSCkgYGN1cnNvci10eXBlJwoKQmVmb3JlIHRoaXMgY29tbWl0LCBi bG9jayBjdXJzb3IgYmVjb21lcyBob2xsb3cgdW5kZXIgImxhcmdlIiBtYXNrZWQKaW1hZ2VzLiAg Tm90aW9uIGZvciAibGFyZ2UiIHdhcyBoYXJkY29kZWQgdG8gYmUgaW1hZ2UgbGFyZ2VyIHRoZW4K MzJ4MzIgaW4gYW55IGRpbWVuc2lvbi4KClRoaXMgcGF0Y2ggYWxsb3dzIHVzZXIgdG8gZGVmaW5l IGhpcyBvd24gbm90aW9uIGZvciAibGFyZ2UiIGltYWdlLAp0YWtpbmcgZnVsbCBjb250cm9sIG9m IGJsb2NrIGN1cnNvciBsb29rIHVuZGVyIG1hc2tlZCBpbWFnZXMuCgpXaXRoIGN1cnNvci10eXBl IGVxdWFsIHRvIGBib3gnIGN1cnNvciB3aWxsIGFsd2F5cyBiZSBibG9jayB1bmRlcgptYXNrZWQg aW1hZ2VzLiAgVGhpcyBkaWZmZXJzIGZyb20gZm9ybWVyIGJlaGF2aW9yIGZvciBib3ggY3Vyc29y LgpUbyBnZXQgZm9ybWVyIGJlaGF2aW9yLCBzZXQgYGN1cnNvci10eXBlJyB0byAoYm94IC4gMzIp Ci0tLQogc3JjL2J1ZmZlci5jIHwgIDQgKysrKwogc3JjL3hkaXNwLmMgIHwgMTkgKysrKysrKysr KysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCA4MGVh YTk3Li40YzQ3ZTliIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5j CkBAIC02MjQ3LDYgKzYyNDcsOSBAQCBmcm9tIChhYnMgUE9TSVRJT04pLiAgSWYgUE9TSVRJT04g aXMgcG9zaXRpdmUsIHBvaW50IHdhcyBhdCB0aGUgZnJvbnQKICAgdCAgICAgICAgICAgICAgIHVz ZSB0aGUgY3Vyc29yIHNwZWNpZmllZCBmb3IgdGhlIGZyYW1lCiAgIG5pbCAgICAgICAgICAgICBk b24ndCBkaXNwbGF5IGEgY3Vyc29yCiAgIGJveCAgICAgICAgICAgICBkaXNwbGF5IGEgZmlsbGVk IGJveCBjdXJzb3IKKyAgKGJveCAuIFdJRFRIKSAgIGRpc3BsYXkgYSBmaWxsZWQgYm94IGN1cnNv ciwgYnV0IG1ha2UgaXQKKyAgICAgICAgICAgICAgICAgIGhvbGxvdyBpZiBjdXJzb3IgaXMgdW5k ZXIgbWFza2VkIGltYWdlIGxhcmdlciB0aGVuCisgICAgICAgICAgICAgICAgICBXSURUSCBpbiBl aXRoZXIgZGltZW50aW9uLgogICBob2xsb3cgICAgICAgICAgZGlzcGxheSBhIGhvbGxvdyBib3gg Y3Vyc29yCiAgIGJhciAgICAgICAgICAgICBkaXNwbGF5IGEgdmVydGljYWwgYmFyIGN1cnNvciB3 aXRoIGRlZmF1bHQgd2lkdGgKICAgKGJhciAuIFdJRFRIKSAgIGRpc3BsYXkgYSB2ZXJ0aWNhbCBi YXIgY3Vyc29yIHdpdGggd2lkdGggV0lEVEgKQEAgLTYyNTUsNiArNjI1OCw3IEBAIGZyb20gKGFi cyBQT1NJVElPTikuICBJZiBQT1NJVElPTiBpcyBwb3NpdGl2ZSwgcG9pbnQgd2FzIGF0IHRoZSBm cm9udAogICBBTllUSElORyBFTFNFICAgZGlzcGxheSBhIGhvbGxvdyBib3ggY3Vyc29yCiAKIFdJ RFRIIGFuZCBIRUlHSFQgY2FuJ3QgZXhjZWVkIHRoZSBmcmFtZSdzIGNhbm9uaWNhbCBjaGFyYWN0 ZXIgc2l6ZS4KK0V4Y2VwdCBmb3IgKGJveCAuIFdJRFRIKSBjYXNlLgogCiBXaGVuIHRoZSBidWZm ZXIgaXMgZGlzcGxheWVkIGluIGEgbm9uLXNlbGVjdGVkIHdpbmRvdywgdGhlCiBjdXJzb3IncyBh cHBlYXJhbmNlIGlzIGluc3RlYWQgY29udHJvbGxlZCBieSB0aGUgdmFyaWFibGUKZGlmZiAtLWdp dCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggMzA4MGY4OS4uMzcxNTg5YyAxMDA2 NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTMwNjgzLDYgKzMwNjgz LDE0IEBAIGdldF9zcGVjaWZpZWRfY3Vyc29yX3R5cGUgKExpc3BfT2JqZWN0IGFyZywgaW50ICp3 aWR0aCkKICAgaWYgKEVRIChhcmcsIFFib3gpKQogICAgIHJldHVybiBGSUxMRURfQk9YX0NVUlNP UjsKIAorICBpZiAoQ09OU1AgKGFyZykKKyAgICAgICYmIEVRIChYQ0FSIChhcmcpLCBRYm94KQor ICAgICAgJiYgUkFOR0VEX0ZJWE5VTVAgKDAsIFhDRFIgKGFyZyksIElOVF9NQVgpKQorICAgIHsK KyAgICAgICp3aWR0aCA9IFhGSVhOVU0gKFhDRFIgKGFyZykpOworICAgICAgcmV0dXJuIEZJTExF RF9CT1hfQ1VSU09SOworICAgIH0KKwogICBpZiAoRVEgKGFyZywgUWhvbGxvdykpCiAgICAgcmV0 dXJuIEhPTExPV19CT1hfQ1VSU09SOwogCkBAIC0zMDg0OSwxMiArMzA4NTcsMTUgQEAgZ2V0X3dp bmRvd19jdXJzb3JfdHlwZSAoc3RydWN0IHdpbmRvdyAqdywgc3RydWN0IGdseXBoICpnbHlwaCwg aW50ICp3aWR0aCwKIAkgICAgICBzdHJ1Y3QgaW1hZ2UgKmltZyA9IElNQUdFX09QVF9GUk9NX0lE IChmLCBnbHlwaC0+dS5pbWdfaWQpOwogCSAgICAgIGlmIChpbWcgIT0gTlVMTCAmJiBJTUFHRVAg KGltZy0+c3BlYykpCiAJCXsKLQkJICAvKiBBcmJpdHJhcmlseSwgaW50ZXJwcmV0ICJMYXJnZSIg YXMgPjMyeDMyIGFuZCA+TnhOCisJCSAgLyogSW50ZXJwcmV0ICJsYXJnZSIgYXMgPldJRFRIeFdJ RFRIIGFuZCA+TnhOCisgICAgICAgICAgICAgICAgICAgICB3aGVyZSBXSURUSCBpcyB0aGUgdmFs dWUgZnJvbSBjdXJzb3ItdHlwZSBpbiBmb3JtIChib3ggLiBXSURUSCksCiAJCSAgICAgd2hlcmUg TiA9IHNpemUgb2YgZGVmYXVsdCBmcmFtZSBmb250IHNpemUuCi0JCSAgICAgVGhpcyBzaG91bGQg Y292ZXIgbW9zdCBvZiB0aGUgInRpbnkiIGljb25zIHBlb3BsZSBtYXkgdXNlLiAgKi8KKyAgICAg ICAgICAgICAgICAgICAgIFNvLCBzZXR0aW5nIGN1cnNvci10eXBlIHRvIChib3ggLiAzMikgc2hv dWxkIGNvdmVyIG1vc3Qgb2YKKyAgICAgICAgICAgICAgICAgICAgIHRoZSAidGlueSIgaWNvbnMg cGVvcGxlIG1heSB1c2UuICAqLwogCQkgIGlmICghaW1nLT5tYXNrCi0JCSAgICAgIHx8IGltZy0+ d2lkdGggPiBtYXggKDMyLCBXSU5ET1dfRlJBTUVfQ09MVU1OX1dJRFRIICh3KSkKLQkJICAgICAg fHwgaW1nLT5oZWlnaHQgPiBtYXggKDMyLCBXSU5ET1dfRlJBTUVfTElORV9IRUlHSFQgKHcpKSkK KyAgICAgICAgICAgICAgICAgICAgICB8fCAoQ09OU1AgKEJWQVIgKGIsIGN1cnNvcl90eXBlKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgaW1nLT53aWR0aCA+IG1heCAoKndpZHRoLCBX SU5ET1dfRlJBTUVfQ09MVU1OX1dJRFRIICh3KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg JiYgaW1nLT5oZWlnaHQgPiBtYXggKCp3aWR0aCwgV0lORE9XX0ZSQU1FX0xJTkVfSEVJR0hUICh3 KSkpKQogCQkgICAgY3Vyc29yX3R5cGUgPSBIT0xMT1dfQk9YX0NVUlNPUjsKIAkJfQogCSAgICB9 Ci0tIAoyLjcuNAoK --000000000000f23401059d1e9d05--