From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: npostavs@users.sourceforge.net Newsgroups: gmane.emacs.bugs Subject: bug#27569: delete-selection on yank via popup-menu Date: Mon, 03 Jul 2017 19:36:07 -0400 Message-ID: <87inj9hz4o.fsf@users.sourceforge.net> References: <49D47C75-80AE-4F81-8713-D90574DB7CA6@misasa.okayama-u.ac.jp> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1499124914 4315 195.159.176.226 (3 Jul 2017 23:35:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 3 Jul 2017 23:35:14 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) Cc: 27569@debbugs.gnu.org To: Tak Kunihiro Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jul 04 01:35:10 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 1dSAry-0000ml-VN for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Jul 2017 01:35:07 +0200 Original-Received: from localhost ([::1]:37756 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSAs4-0007pW-A6 for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Jul 2017 19:35:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48766) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSArz-0007oK-Ij for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2017 19:35:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dSAru-0005fV-Tt for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2017 19:35:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:48264) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dSAru-0005fR-P9 for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2017 19:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dSAru-00015s-FL for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2017 19:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Jul 2017 23:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27569 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 27569-submit@debbugs.gnu.org id=B27569.14991248794170 (code B ref 27569); Mon, 03 Jul 2017 23:35:02 +0000 Original-Received: (at 27569) by debbugs.gnu.org; 3 Jul 2017 23:34:39 +0000 Original-Received: from localhost ([127.0.0.1]:50941 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSArX-00015C-7Y for submit@debbugs.gnu.org; Mon, 03 Jul 2017 19:34:39 -0400 Original-Received: from mail-it0-f48.google.com ([209.85.214.48]:37777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSArU-00014w-V4 for 27569@debbugs.gnu.org; Mon, 03 Jul 2017 19:34:38 -0400 Original-Received: by mail-it0-f48.google.com with SMTP id m84so63579361ita.0 for <27569@debbugs.gnu.org>; Mon, 03 Jul 2017 16:34:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=f6Bs+h3jIE13fweJ8qhFIB/abe4OCzz84Xj7yU8Yd1E=; b=HL0D2m/G7nOHBzzpE2MHOC4i32oFi7ufJj8VpnOTQBVNEhB7QxCPw0RI1LlUSiDWVE axhIQT2ivIbD5NyLWruNvPRikUI3VXbvvO/jCFAEBh0NvNPbfJPAHd/qBc3+j1DzNvzx wmiUeCAH/Qr5G95xK16dfr5mYvmgQskbIPnJ0lcKCjphjVK5cYyRGwUD4krnH6CYRLl2 fisAl/QV00fpVZiOyC+Y6/u9RlUZ73QW76VGO27kT96MJxTRwa3YDdz/nikMdDeXijtR C1PXd44r+zPonkVT9rlI7mC+6sbbKU4CN9/zdO0nBRrMHLDRyl86BQAAWewCjVNGrdIg JbbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=f6Bs+h3jIE13fweJ8qhFIB/abe4OCzz84Xj7yU8Yd1E=; b=iM4o2x6qnZH6k83DpcA0oSI+wst77CR4NyvqzKiXW7Y+yC8+RG0t5zZW1UL2Pa8Zpi TWKeElQ+4uWp/YqUVHIpWtNeBEY8pINmWwOnJHB0U50l391TBL1yZhMRip6eHX4Ae4fB tfb7RtRjnfKvgMLf+JMgS0G1YsbDF9IctjSfF8fQoGrykbfCuZJ5/q+1EcZlBLKX829l wBEYKKW3e718dULmvSRUjnRKG8PNUF9LYxyVXZkNYqDv9XnyyZW9bj6pZ6oPZ/fjTG/1 yfFy4EwR835xIMK4Xaqx3kn523PVMfhAxao3qeFeHXmUDlhoMzKkKoeyfqFdBzGItvpr 9JgA== X-Gm-Message-State: AKS2vOyImaZ5q6LH2s1NT9P7FALZevWxMBEv2AO0GNlNVTHZ4Wa1FwAX JkpTcvgU0uy8lazl X-Received: by 10.36.165.76 with SMTP id w12mr33489122iti.52.1499124871079; Mon, 03 Jul 2017 16:34:31 -0700 (PDT) Original-Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id u128sm6050506ioe.40.2017.07.03.16.34.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Jul 2017 16:34:30 -0700 (PDT) In-Reply-To: <49D47C75-80AE-4F81-8713-D90574DB7CA6@misasa.okayama-u.ac.jp> (Tak Kunihiro's message of "Tue, 4 Jul 2017 08:15:12 +0900") 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:134151 Archived-At: Tak Kunihiro writes: > I want to yank via popup-menu with delete-selection-mode. > Problem is yanking via popup-menu does not delete region. > > emacs -Q > (defun popup-edit-menu () > (interactive) > (popup-menu menu-bar-edit-menu)) > (define-key global-map [mouse-3] 'popup-edit-menu) > (delete-selection-mode 1) > > 1. kill something > 2. select text (activate region) to be replaced > 3. choose yank in popup-menu via mouse-3 > > Problem: Selected text by (2) is not deleted. > > I barely see problem is that on delete-selection-pre-hook, > this-command is `popup-edit-menu' instead `yank'. > > Is there a way to solve the problem? This seems to work, though I'm not sure if it's the right way. Perhaps `this-command' should be setq instead of let-bound? Will running pre-command-hook twice be a problem? etc... --- i/lisp/menu-bar.el +++ w/lisp/menu-bar.el @@ -2360,6 +2360,8 @@ (defun popup-menu (menu &optional position prefix from-menu-bar) ;; `setup-specified-language-environment', for instance, ;; expects this to be set from a menu keymap. (setq last-command-event (car (last event))) + (let ((this-command cmd)) + (run-hook 'pre-command-hook)) ;; mouse-major-mode-menu was using `command-execute' instead. (call-interactively cmd))))