bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#26104: 26.0.50; In Ubuntu, having mouse over other frame cause Alt k


From: Jonathan Ganc
Subject: bug#26104: 26.0.50; In Ubuntu, having mouse over other frame cause Alt key to produce a <switch-frame> event
Date: Fri, 17 Mar 2017 21:04:57 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

Hi.

That does fix the problem for yank-pop, but I don't think it's a good fix. For example, it let's someone use yank-pop without having used yank if they use handle-switch-frame before. Also, the same issue happens with other commands like dabbrev-expand, which relies on checking what the previous command was.

What is the purpose of executing `handle-switch-frame` at all? Maybe there's some way of excluding it from last-command. But again, I don't really understand x-windows well or why that command is being sent.

Jonathan


On 03/17/2017 03:19 AM, martin rudalics wrote:
> In Ubuntu, if I have two frames open and the mouse is positioned over the other frame (i.e. not over the active one), pressing the Alt key produces a <switch-frame> event.
>
> While this event does nothing in itself, it disrupts things like yank-pop, which no longer works if it is bound to M-y as usual (because instead of the command sequence yank -> yank-pop, we now have yank -> handle-switch-frame -> yank-pop, which gives an error "user-error: Previous command was not a yank").
>
> To be honest, I don't know enough about X-Windows to know if this is emacs' fault or x-windows fault. But it's very annoying.
>
> [Tried on Emacs versions 24.5, 25.1, and the 26.0 and Ubuntu 16.10.]

Could you try in simple.el to replace

  (if (not (eq last-command 'yank))
      (user-error "Previous command was not a yank"))

with

  (if (not (memq last-command '(yank handle-switch-frame)))
      (user-error "Previous command was not a yank"))

Thanks, martin






reply via email to

[Prev in Thread] Current Thread [Next in Thread]