From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Alan Third Newsgroups: gmane.emacs.bugs Subject: bug#29353: [PATCH] Add window divider faces to NS (bug#29353) Date: Sun, 19 Nov 2017 11:53:13 +0000 Message-ID: <20171119115313.GA77907@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 1511092457 5383 195.159.176.226 (19 Nov 2017 11:54:17 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 19 Nov 2017 11:54:17 +0000 (UTC) User-Agent: Mutt/1.9.1 (2017-09-22) Cc: 29353@debbugs.gnu.org To: Keith David Bershatsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 19 12:54:08 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1eGOAn-0000iv-Hg for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Nov 2017 12:54:05 +0100 Original-Received: from localhost ([::1]:52693 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eGOAu-0001Zp-Kb for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Nov 2017 06:54:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eGOAo-0001ZX-LK for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2017 06:54:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eGOAk-0000Ak-Hb for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2017 06:54:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:38158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eGOAk-0000AY-DH for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2017 06:54:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eGOAk-0008TR-66 for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2017 06:54:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Alan Third Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Nov 2017 11:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29353 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 29353-submit@debbugs.gnu.org id=B29353.151109240532531 (code B ref 29353); Sun, 19 Nov 2017 11:54:02 +0000 Original-Received: (at 29353) by debbugs.gnu.org; 19 Nov 2017 11:53:25 +0000 Original-Received: from localhost ([127.0.0.1]:46839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eGOA8-0008Sd-W6 for submit@debbugs.gnu.org; Sun, 19 Nov 2017 06:53:25 -0500 Original-Received: from mail-wm0-f53.google.com ([74.125.82.53]:40128) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eGOA6-0008SQ-RU for 29353@debbugs.gnu.org; Sun, 19 Nov 2017 06:53:23 -0500 Original-Received: by mail-wm0-f53.google.com with SMTP id b189so13590336wmd.5 for <29353@debbugs.gnu.org>; Sun, 19 Nov 2017 03:53:22 -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=20JjfhWfCK6aB2KeWVLmjTyQPZcJKBbGR1sBzAkdRao=; b=QfvhD7leARsNoL1nf7jTAM8on57Z/4hYxQ/fFX1e1/Ec0IpAfORZmtbO30JyfdA6iG 7hxgzPAPQlehZsQYdxp72e3tv4XmT1RD6IUvQaBYuWmkgk3Cv0eLnj8lmum3M0c2P5EE mboSGeYpD0WSJUbSpk0xTgNhxDFvmeIsDaJ4VYjbEewLZIDE90rWCfuiW5R6jgZusTC+ bidRnL6CC+45QbuTRNs0YD5Da+SD6ydl36U+RYTkp9DDzjRnC3ERovui/kgh+cLO0EM+ D8/vFhV9UMUMjFzAa7GkPg/d7CzTG3n2gcA3ROcRcqHLRKaVviBByIada4oM00MYjV1O JjYA== 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=20JjfhWfCK6aB2KeWVLmjTyQPZcJKBbGR1sBzAkdRao=; b=E8LP1PMGu7c6I+pPDKMkpU2i8xx/3PqWlYCPS9CoBtKkIDzfyYPiVTA6WYEgOuH6bI Zq+yoWIjqR5mYQgtGQ00vU829knKpWx6J3M/qRpUiKkD9/h25QgPnEeHowRYzqWLAuB6 2SW95jguA4I8qEupb2DFteNsL/43WUykCtQqxqJLmomCM8e4S6mVGSN2OyLLvT/pPCOO SmEtY1QUfxAT37nOhGmVMwnF1tGkoKW3UC0tVvwDzVjswY44t+iOPH8zHJMzc/Q6N/Y/ go/Fih0l6Sgsw8TWIMKRoS/ffvaCome6SRb4wL1Q9nXNTP//anSAwmVpdTLj2G8T//1d pESg== X-Gm-Message-State: AJaThX6+RhLHdZ1plmzM7/RVJZJS8tZ/7y/oqfFNxRbbmx7s9gbuff0D pj+EzhJend1+LMsDDUuGxc5A98Wi X-Google-Smtp-Source: AGs4zMaW4H73VPDURYlb106bAWBVl3M4nVRjNibe3z3mN3942nxDfpqaLNPVxaPDgwyUQoIAf75HnQ== X-Received: by 10.28.215.194 with SMTP id o185mr7666116wmg.105.1511092396998; Sun, 19 Nov 2017 03:53:16 -0800 (PST) Original-Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-4194-739c-8051-7b4c.holly.idiocy.org. [2001:8b0:3f8:8129:4194:739c:8051:7b4c]) by smtp.gmail.com with ESMTPSA id r29sm5562152wra.71.2017.11.19.03.53.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Nov 2017 03:53:15 -0800 (PST) Content-Disposition: inline In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:140087 Archived-At: * src/nsterm.m (ns_draw_window_divider): Use window-divider-first-pixel and window-divider-last-pixel faces. --- src/nsterm.m | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/src/nsterm.m b/src/nsterm.m index 5c29f039e5..b63c85fc56 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3174,18 +3174,50 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors. -------------------------------------------------------------------------- */ { struct frame *f = XFRAME (WINDOW_FRAME (w)); - struct face *face; - NSRect r = NSMakeRect (x0, y0, x1-x0, y1-y0); + struct face *face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID); + struct face *face_first + = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID); + struct face *face_last + = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_LAST_PIXEL_FACE_ID); + unsigned long color = face ? face->foreground : FRAME_FOREGROUND_PIXEL (f); + unsigned long color_first = (face_first + ? face_first->foreground + : FRAME_FOREGROUND_PIXEL (f)); + unsigned long color_last = (face_last + ? face_last->foreground + : FRAME_FOREGROUND_PIXEL (f)); + NSRect divider = NSMakeRect (x0, y0, x1-x0, y1-y0); NSTRACE ("ns_draw_window_divider"); - face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID); + ns_focus (f, ÷r, 1); - ns_focus (f, &r, 1); - if (face) - [ns_lookup_indexed_color(face->foreground, f) set]; + if (y1 - y0 > x1 - x0 && x1 - x0 > 2) + /* Vertical. */ + { + [ns_lookup_indexed_color(color_first, f) set]; + NSRectFill(NSMakeRect (x0, y0, 1, y1 - y0)); + [ns_lookup_indexed_color(color, f) set]; + NSRectFill(NSMakeRect (x0 + 1, y0, x1 - x0 - 2, y1 - y0)); + [ns_lookup_indexed_color(color_last, f) set]; + NSRectFill(NSMakeRect (x1 - 1, y0, 1, y1 - y0)); + } + else if (x1 - x0 > y1 - y0 && y1 - y0 > 3) + /* Horizontal. */ + { + [ns_lookup_indexed_color(color_first, f) set]; + NSRectFill(NSMakeRect (x0, y0, x1 - x0, 1)); + [ns_lookup_indexed_color(color, f) set]; + NSRectFill(NSMakeRect (x0, y0 + 1, x1 - x0, y1 - y0 -2)); + [ns_lookup_indexed_color(color_last, f) set]; + NSRectFill(NSMakeRect (x0, y1 - 1, x1 - x0, 1)); + } + else + { + [ns_lookup_indexed_color(color, f) set]; + NSRectFill(divider); + } - NSRectFill(r); ns_unfocus (f); } -- Hi Keith, Can you please test this patch? I’m unsure how to set these faces so I don’t know if it’s working right. -- Alan Third