From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chong Yidong Newsgroups: gmane.emacs.bugs Subject: bug#9982: Theme faces wrongly applied after background changes. Date: Sun, 29 Jan 2012 22:14:57 +0800 Message-ID: <8762fuegta.fsf@gnu.org> References: <097h3b7rlx.fsf@fencepost.gnu.org> <877h0a6a0s.fsf@gnu.org> <87zkd6bpun.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1327846564 13642 80.91.229.3 (29 Jan 2012 14:16:04 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 29 Jan 2012 14:16:04 +0000 (UTC) Cc: Brendan Miller , 9982@debbugs.gnu.org To: Jan =?UTF-8?Q?Dj=C3=A4rv?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 29 15:16:03 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RrVY3-0003jX-D7 for geb-bug-gnu-emacs@m.gmane.org; Sun, 29 Jan 2012 15:16:03 +0100 Original-Received: from localhost ([::1]:43674 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrVY1-000065-RC for geb-bug-gnu-emacs@m.gmane.org; Sun, 29 Jan 2012 09:16:01 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:52546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrVXy-00005h-Ti for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2012 09:15:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RrVXx-0005mf-Qn for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2012 09:15:58 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:39569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RrVXx-0005mb-PL for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2012 09:15:57 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1RrVY1-0007Ef-NS for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2012 09:16:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Chong Yidong Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Jan 2012 14:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9982 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9982-submit@debbugs.gnu.org id=B9982.132784652727765 (code B ref 9982); Sun, 29 Jan 2012 14:16:01 +0000 Original-Received: (at 9982) by debbugs.gnu.org; 29 Jan 2012 14:15:27 +0000 Original-Received: from localhost ([127.0.0.1]:43192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RrVXO-0007Dh-Ii for submit@debbugs.gnu.org; Sun, 29 Jan 2012 09:15:27 -0500 Original-Received: from fencepost.gnu.org ([140.186.70.10]:60459 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RrVXF-0007DT-7R for 9982@debbugs.gnu.org; Sun, 29 Jan 2012 09:15:21 -0500 Original-Received: from bb121-7-229-69.singnet.com.sg ([121.7.229.69]:48514 helo=furball) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1RrVX9-0001Kb-89; Sun, 29 Jan 2012 09:15:08 -0500 In-Reply-To: <87zkd6bpun.fsf@gnu.org> (Chong Yidong's message of "Sun, 29 Jan 2012 21:28:00 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:56195 Archived-At: I've committed a patch to trunk that should fix the immediate problem. The reason this bug triggered under XFCE is that XFCE sends Emacs a `font-render' config event, and a font-setting-change-default-font bug caused the default face to be modified even with font-use-system-font nil. This patch doesn't address the broader problem, noted in my previous message: when font-use-system-font is non-nil, the way font-setting-change-default-font uses custom-push-theme will likely interefere with the user's own Custom settings and/or Custom themes. I think that instead of using custom-push-theme, font-setting-change-default-font should set a `font' frame parameter in window-system-default-frame-alist. Something like the following (needs testing---I don't have Gconf libs installed at the moment). Jan, WDYT? === modified file 'lisp/dynamic-setting.el' *** lisp/dynamic-setting.el 2012-01-29 13:55:09 +0000 --- lisp/dynamic-setting.el 2012-01-29 14:09:40 +0000 *************** *** 75,86 **** ;; Set for future frames. (when set-font ! ;; FIXME: this is not going to play well with Custom themes. ! (set-face-attribute 'default t :font new-font) ! (let ((spec (list (list t (face-attr-construct 'default))))) ! (put 'default 'customized-face spec) ! (custom-push-theme 'theme-face 'default 'user 'set spec) ! (put 'default 'face-modified nil)))))) (defun dynamic-setting-handle-config-changed-event (event) "Handle config-changed-event on the display in EVENT. --- 75,88 ---- ;; Set for future frames. (when set-font ! (let* ((ws (window-system)) ! (alist (assq ws window-system-default-frame-alist))) ! (setq window-system-default-frame-alist ! (delq alist window-system-default-frame-alist)) ! (setq alist (cdr alist)) ! (setq alist (cons (cons 'font new-font) ! (delq 'font alist))) ! (push (cons ws alist) window-system-default-frame-alist)))))) (defun dynamic-setting-handle-config-changed-event (event) "Handle config-changed-event on the display in EVENT.