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: disable menu-items when frame invisible / inapplicable Date: Thu, 18 Aug 2005 22:48:10 +0100 Message-ID: <2B737092-494A-46E0-A41E-74BBC426069F@gmail.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 (Apple Message framework v734) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1124403103 19231 80.91.229.2 (18 Aug 2005 22:11:43 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 18 Aug 2005 22:11:43 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Aug 19 00:11:42 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1E5saK-0005z8-1c for ged-emacs-devel@m.gmane.org; Fri, 19 Aug 2005 00:10:04 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1E5sdr-0004Jy-A4 for ged-emacs-devel@m.gmane.org; Thu, 18 Aug 2005 18:13:43 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1E5sdN-0004Em-0A for emacs-devel@gnu.org; Thu, 18 Aug 2005 18:13:13 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1E5sdK-0004Dn-DU for emacs-devel@gnu.org; Thu, 18 Aug 2005 18:13:12 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1E5sZR-0003I4-KZ for emacs-devel@gnu.org; Thu, 18 Aug 2005 18:09:09 -0400 Original-Received: from [64.233.162.192] (helo=zproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1E5sVE-0008TS-TK for emacs-devel@gnu.org; Thu, 18 Aug 2005 18:04:49 -0400 Original-Received: by zproxy.gmail.com with SMTP id v1so367586nzb for ; Thu, 18 Aug 2005 14:48:14 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:mime-version:content-transfer-encoding:message-id:content-type:to:from:subject:date:x-mailer; b=k8mzCidtJNggAXbuxzhJsoSpuCnAEA0ZBwiuqzMEx1tdugA6j6Bj1IK/X+39Cu89wUlbN5AA0UV1dSiwRQIUSY3pAUlhtynyqh//8LkxY+tGkJiyp++XJcBLEZmw8hqYlckhsfpHI4A0Kb7kWnC5wsAik9xdNFtvFaZIMU5wOME= Original-Received: by 10.36.247.20 with SMTP id u20mr1283715nzh; Thu, 18 Aug 2005 14:48:14 -0700 (PDT) Original-Received: from ?10.0.0.61? ([82.26.161.140]) by mx.gmail.com with ESMTP id r9sm3285354nza.2005.08.18.14.48.13; Thu, 18 Aug 2005 14:48:14 -0700 (PDT) Original-To: Emacs-Devel ' X-Mailer: Apple Mail (2.734) 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:42248 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:42248 Can I suggest to disable menu items when the frame they refer to is invisible, or when they refer to a buffer and the minibuffer is selected? Note that the menu bar doesn't always have to be inside the frame - some systems / window manager configurations allow you to have the menu bar on top of the screen or wherever. *** menu-bar.el 11 Aug 2005 20:57:36 -0000 1.268 --- menu-bar.el 18 Aug 2005 21:43:51 -0000 *************** *** 105,110 **** --- 105,114 ---- (define-key menu-bar-file-menu [split-window] '(menu-item "Split Window" split-window-vertically + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame ) + (not (window-minibuffer-p + (frame-selected-window menu-updating- frame)))) :help "Split selected window in two windows")) (define-key menu-bar-file-menu [separator-window] *************** *** 116,121 **** --- 120,127 ---- :help "Pretty-print marked region in black and white to PostScript printer")) (define-key menu-bar-file-menu [ps-print-buffer] '(menu-item "Postscript Print Buffer (B+W)" ps-print-buffer + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Pretty-print current buffer in black and white to PostScript printer")) (define-key menu-bar-file-menu [ps-print-region-faces] '(menu-item "Postscript Print Region" ps-print-region-with-faces *************** *** 123,128 **** --- 129,136 ---- :help "Pretty-print marked region to PostScript printer")) (define-key menu-bar-file-menu [ps-print-buffer-faces] '(menu-item "Postscript Print Buffer" ps-print-buffer-with-faces + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Pretty-print current buffer to PostScript printer")) (define-key menu-bar-file-menu [print-region] '(menu-item "Print Region" print-region *************** *** 130,135 **** --- 138,145 ---- :help "Print region between mark and current position")) (define-key menu-bar-file-menu [print-buffer] '(menu-item "Print Buffer" print-buffer + :enable (and (frame-live-p menu-updating-frame) + (frame-visible-p menu-updating-frame )) :help "Print current buffer with page headings")) (define-key menu-bar-file-menu [separator-print] *************** *** 160,167 **** :help "Re-read current buffer from its file")) (define-key menu-bar-file-menu [write-file] '(menu-item "Save As..." write-file ! :enable (not (window-minibuffer-p ! (frame-selected-window menu-updating- frame))) :help "Write current buffer to another file")) (define-key menu-bar-file-menu [save-buffer] '(menu-item "Save" save-buffer --- 170,180 ---- :help "Re-read current buffer from its file")) (define-key menu-bar-file-menu [write-file] '(menu-item "Save As..." write-file ! ! :enable (and (frame-live-p menu-updating-frame) ! (frame-visible-p menu-updating-frame ) ! (not (window-minibuffer-p ! (frame-selected-window menu-updating- frame)))) :help "Write current buffer to another file")) (define-key menu-bar-file-menu [save-buffer] '(menu-item "Save" save-buffer *************** *** 1037,1043 **** '(menu-item "Truncate Long Lines in this Buffer" toggle-truncate-lines :help "Truncate long lines on the screen" ! :button (:toggle . truncate-lines))) (define-key menu-bar-options-menu [highlight-separator] '("--")) --- 1050,1058 ---- '(menu-item "Truncate Long Lines in this Buffer" toggle-truncate-lines :help "Truncate long lines on the screen" ! :button (:toggle . truncate-lines) ! :enable (and (frame-live-p menu-updating-frame) ! (frame-visible-p menu-updating-frame )))) (define-key menu-bar-options-menu [highlight-separator] '("--"))