From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: special-mode buffer changes to fundamental when modified Date: Sun, 23 Oct 2016 13:41:56 +0200 Message-ID: <87lgxfl2bf.fsf@web.de> References: <87wph3n4d7.fsf@jupiter.lan> <87twc79gsa.fsf@web.de> <87eg3bhtcm.fsf@jupiter.lan> <87wph2j7e3.fsf@web.de> <877f911bnm.fsf@jupiter.lan> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1477222984 12618 195.159.176.226 (23 Oct 2016 11:43:04 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 23 Oct 2016 11:43:04 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) Cc: help-gnu-emacs@gnu.org To: Stefan Huchler Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Oct 23 13:42:49 2016 Return-path: Envelope-to: geh-help-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 1byHAg-0008Pv-JE for geh-help-gnu-emacs@m.gmane.org; Sun, 23 Oct 2016 13:42:34 +0200 Original-Received: from localhost ([::1]:40616 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byHAi-0002LW-Pe for geh-help-gnu-emacs@m.gmane.org; Sun, 23 Oct 2016 07:42:36 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39110) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byHAF-0002LF-Sv for help-gnu-emacs@gnu.org; Sun, 23 Oct 2016 07:42:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1byHAB-0004h0-9c for help-gnu-emacs@gnu.org; Sun, 23 Oct 2016 07:42:07 -0400 Original-Received: from mout.web.de ([212.227.15.4]:61082) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1byHAB-0004fl-0X for help-gnu-emacs@gnu.org; Sun, 23 Oct 2016 07:42:03 -0400 Original-Received: from drachen.dragon ([90.186.3.80]) by smtp.web.de (mrweb003) with ESMTPSA (Nemesis) id 0LudLU-1cxlma0ubA-00zqGZ; Sun, 23 Oct 2016 13:42:00 +0200 In-Reply-To: <877f911bnm.fsf@jupiter.lan> (Stefan Huchler's message of "Sat, 22 Oct 2016 02:15:57 +0200") X-Provags-ID: V03:K0:RyP+JcSGNVgJTgVJj+RL/LrHTu9Kjpyj6F0fXqNEOmhUvrs4WwU H6dXLDUJva76J9o9tAisw0EPNTbpk8CT+dRz4vbUG6XPPBIuIIpd2Zg7RFA4liWFgFQX1LY 2Mr48AEI+OtJ53pLDMBkXuHoy4PCF31f3eS7rhxVeUSPPp9rsVBAmqaXy/7FvbBfSQjMC/f 6zPukqTb0tIt5lFOxbhfA== X-UI-Out-Filterresults: notjunk:1;V01:K0:PXKyM3hftzs=:mSu3bC8DjrRBcgZMYpo9Rg q4W73LNfEtsRcKLRj+T7kWZ6DwN652dPOVOW1evfVopd0d6Ow/zKJoTeKXrceMEGN3mU2tpOo GZ0IX5qGOtrHIyGzfOagT7tlk6mDFBI8EqKzhJfFnx+RByyQKjrOeJWUhKDOfHOUnCCJCVLXB sWE1IaRKlgV4n8A5+mEhE6LHX9YOG7UgQmUwty7hh1ii4kRK/o3Z2q7YweuzkWXDjAl835lF2 /ERaX/n4E1TFeNHK9DyJ5fLFqH8rbOaPzRp6Ht9+uap1mpHaBTB1TmJ2FibeAcoOzPuKHPu6q mIndnRxsb2VUDFkddtpIM1MfeGJ31PtT8HI6RDXVb6A/2PVbpTTyUdkNyChtqTnoGo9qghxPW 2IZ4xzaWoCtLECaeWjwzgpZoB4OIp96HkWAIMPR/bxF3RNPo8XlJ3NdG5TXgU/j7I4q0P+Bd8 RXv12CZbhjEOMjO4JzdVaTHgDGFv9Q67WVVYI3tU8W9jcsRZ0e1OKYK9Cb6Q8jYm5HyJBEDVN zP+WiAb5niZk9Qll4v2oR/+DVDs4zv5c+l8L6WKHQIzNmjy6dTQ4ybvnTa6d69jGefTVQcBAz adOYMGLc2fDNt3+i68LGgEgkDn5btqFgRIIoLnlh0dtb8mQNtSvERCb8n8+R3WkOOHiPO6H0H +pUKRancnN1SoMVSL6yf56VDK6GgBdEpDOYVUjbdCoMQMCXBgTUDgfh+bNR82PVpkCgRqKwbg U3IxwvmymsQnhQPAbZ5U46vPX0ZoKJ4kYoOR2OC/aEu2JwWStmSbxqAgSDioe+26LH5CbLxk X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.4 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:111597 Archived-At: Stefan Huchler writes: > So did you understand what I wanna do? I can give you the real source > code not the abstracted here: > > > (defvar kodi-remote-keyboard-mode-map > (let ((map (make-sparse-keymap)) > (menu-map (make-sparse-keymap))) > .... > (define-key map (kbd "-") 'kodi-remote-volume-decrease) > (define-key map (kbd "") 'kodi-remote-toggle-fullscreen) > map) > "Keymap for kodi-remote-keyboard-mode.") > > (define-derived-mode kodi-remote-keyboard-mode special-mode "kodi-remote-keyboard" > "Major mode for remote controlling kodi instance with keyboard commands > Key bindings: > \\{kodi-remote-keyboard-mode-map}" > (toggle-read-only) > (insert (concat "Kodi Remote:\n" > (substitute-command-keys > "\\{kodi-remote-keyboard-mode-map}") )) > ) > > (defun kodi-remote-keyboard () > "Open a `kodi-remote-keyboard-mode' buffer." > (interactive) > (let* ((name "*kodi-remote-keyboard*") > (buffer (or (get-buffer name) > (generate-new-buffer name)))) > (unless (eq buffer (current-buffer)) > (with-current-buffer buffer > (unless (eq major-mode 'kodi-remote-keyboard-mode) > (condition-case e > (progn > (kodi-remote-keyboard-mode) > ) > (error > (kill-buffer buffer) > (signal (car e) (cdr e)))))) > (switch-to-buffer-other-window buffer)))) FWIW, works perfectly here. You should move the `insert' of the mode definition, however, into `kodi-remote-keyboard', and instead of (toggle-read-only) I think (setq buffer-read-only nil) would be better. Michael.