From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#51707: 29.0.50; [PATCH] Fix a crash on X when trying to show a tiny xwidget inside a tiny window Date: Tue, 09 Nov 2021 15:38:51 +0800 Message-ID: <87lf1x93sk.fsf@yahoo.com> References: <87lf1x93sk.fsf.ref@yahoo.com> Reply-To: Po Lu 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="1655"; mail-complaints-to="usenet@ciao.gmane.io" To: 51707@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 09 08:47:59 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1mkLrL-0000Gr-HC for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Nov 2021 08:47:59 +0100 Original-Received: from localhost ([::1]:49068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkLrK-0004Jj-AM for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Nov 2021 02:47:58 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkLje-0003k1-Dp for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 02:40:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49111) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkLje-000391-41 for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 02:40:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkLjd-0000P5-W4 for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 02:40:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Nov 2021 07:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 51707 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16364435471469 (code B ref -1); Tue, 09 Nov 2021 07:40:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 9 Nov 2021 07:39:07 +0000 Original-Received: from localhost ([127.0.0.1]:60657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkLil-0000Nd-1H for submit@debbugs.gnu.org; Tue, 09 Nov 2021 02:39:07 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:36152) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkLii-0000NU-2p for submit@debbugs.gnu.org; Tue, 09 Nov 2021 02:39:05 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42050) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkLih-0002cn-8F for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 02:39:03 -0500 Original-Received: from sonic313-10.consmr.mail.ne1.yahoo.com ([66.163.185.33]:44367) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkLie-0002ro-LC for bug-gnu-emacs@gnu.org; Tue, 09 Nov 2021 02:39:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636443538; bh=WlSHb49WCvuppWOygS93SMwv4GhmRgmhgcoS5Ay2VlI=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=LPB5zwd9SOu2NVj81+bXisheCfJ3Dxi1EvGlkmoR4DSuA4uboF8dmLRMj7oI6cPKgDYEwPkzWfMsyh3QX/lBru/okfHyi2s9dx/jexqUIWLq17DQCyqLgjfKUvVuUJ8tYYOykif8xWTry5VDPSCzsR32B9m3uGo+pZyjWC/P33TAohERCDkKi1OoXFgQ05332Hq3myoNAypQx3qLe310tkEk/aqNEEie1+ESzk+YRXjBffblWYlmW5oD6yHXKgJ7jYAPXk6mnolcpop1rNeguQ9PogMF8vQ3xWhQbzn+BeRfdLzPxxjb0xYknK2Na9lfwz6sDaiMR7J0IOk/bWQD6w== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636443538; bh=1cSYp6cvwCkCMenM2+2sVrK8i8DnQYdeRi8r6p/kqQo=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=rN1qy2SvbnHrFA/9YF/PMqesH/ccAwHYt8FXI0dd6wrEC4MubXO7UCILdWb2RrRmjQ1QRR5u18HV0yuRYU3nv+rJx3xRHRIm4dQdSZkxODTjEk0oNJdsEogIg3vuqkBRgSMF8xT31HGKc+J1hfDV01z8hl6ALClCuNUskxruZHkYvSNI+i48egE/YGcOCNp4/Vs2/0U7QPPDiQ1bHpx7Kgxwe1ygNQZmhBjTiYkgN0ZeYRRYaLFfGN3z/clx8OkuXYJpTiIPPCm88sevYbALgMWrcmVMXfH2ucRELClZDoeME0jUdBzRa27OcpowdGnre+Quv/x3+ZNEz5e15gHEXQ== X-YMail-OSG: iNZTdSgVM1l0cjfix9G6RGMA_yvx03pWYKQXb7Sn0jGrOwXQvW7.tkdCZv1TDyG DZFzDQ5lvFEy1cZDoEYlV05jNeXJPYMV8FTM0YY3tSfKqwwUIKvjw.CZaErtH51Q7pm4SFUPFUGI roMN9am7PPy3RDPq6vs_G4gRnxZ4jIvcbwGeXY8VYOyZyKajcjp526pgNYuMl7LQuW_bnUCaUdTh Ymgsh0xnUlyiQj2qZQccdvqw2WIrEcqgxsPRbth2B0HIDtPV9pxk5MV1.01fRNt3irtPx4bCWBZb 8.hzw6cx0Lb68jM.6CVDqTyWpEQ.8.oaWDRjvgZcphdHExeTvO29dJ8jyaDnRQqMje49VgjCOLh8 lbeMMGTm.F45jDbp6q21htdZufNB_ujsXD_MHS.SMvn2MP6kpZRbUQECn1LcQPDJ1.0Bi.AQwNN6 Do_d4FYYLFgV6w0xErtk.VTEvockJyCRCHMu_vGL_FRgI7OJVCU_vo69m3EcTuM5COt1ksMGuXP5 _.wBYqcJQVdkf55GDmv9M66f8uH4BPAe1wl93egA94q8Aguwiwo2AWf.XI2pd51GPiZzscNRd5z. Zb7BzJxRp6UDtjsA0uYvAjZnIbkhMoIdMF23BUcUf2nC3pExobzhnccyyubCmT9EpPb20qs_.Twg PXU2XP3hPW2WXOQ_DLD0yuxtcezwy.0nWcf7GvOWlQOaOp2jqb8807refe9EenyLeBoBqNqm1GuS tE9SAKLlTRS8oC8mqGQ2bLovlqMqAqgQXtiKF_W8T5tCHLlgB4mIm8_Ki0wvMoPF2Y_YbOEzCyUp J2jWivOhjfXE70KJPrlJ3EyOvXrUEkD09bTbwJi1MH X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Tue, 9 Nov 2021 07:38:58 +0000 Original-Received: by kubenode503.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 470de75b59c69a08de037a3f853c44f4; Tue, 09 Nov 2021 07:38:55 +0000 (UTC) X-Mailer: WebService/1.1.19266 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.185.33; envelope-from=luangruo@yahoo.com; helo=sonic313-10.consmr.mail.ne1.yahoo.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, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:219424 Archived-At: --=-=-= Content-Type: text/plain Thanks. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Prevent-BadValue-errors-when-creating-tiny-xwidget-v.patch >From da3b274bb17c7283bc73fefc4bc38803ef895523 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Tue, 9 Nov 2021 15:37:01 +0800 Subject: [PATCH] Prevent BadValue errors when creating tiny xwidget views * src/xwidget.c (x_draw_glph_string): Avoid resizing xwidget views to an invalid size. --- src/xwidget.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/xwidget.c b/src/xwidget.c index d3a8d5eb82..fc76ce307e 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -1439,6 +1439,13 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) a.event_mask = (ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask | LeaveWindowMask); + if (clip_right - clip_left <= 0 + || clip_bottom - clip_top <= 0) + { + unblock_input (); + return; + } + xv->wdesc = XCreateWindow (xv->dpy, FRAME_X_WINDOW (s->f), x + clip_left, y + clip_top, clip_right - clip_left, @@ -1484,8 +1491,17 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) #ifdef USE_GTK if (!wdesc_was_none && !moved) { - XResizeWindow (xv->dpy, xv->wdesc, clip_right - clip_left, - clip_bottom - clip_top); + if (clip_right - clip_left <= 0 + || clip_bottom - clip_top <= 0) + { + XUnmapWindow (xv->dpy, xv->wdesc); + xv->hidden = true; + } + else + { + XResizeWindow (xv->dpy, xv->wdesc, clip_right - clip_left, + clip_bottom - clip_top); + } XFlush (xv->dpy); cairo_xlib_surface_set_size (xv->cr_surface, clip_right - clip_left, clip_bottom - clip_top); -- 2.31.1 --=-=-=--