rolandwalker / fixmee

Quickly navigate to FIXME notices in Emacs
66 stars 4 forks source link

wheel-{up,down} is not portable #4

Closed Schnouki closed 12 years ago

Schnouki commented 12 years ago

On Linux wheel events are called mouse-4 and mouse-5. They are defined in a portable way as mouse-wheel-down-event and mouse-wheel-up-event in mwheel.el. Could you please use these instead?

I tried to add this myself but I can't get it to work -- the lighter properties don't seem to work, I don't see the menu-map or anything in my mode line...

(Running Emacs 24.2 on Arch Linux)

rolandwalker commented 12 years ago

Do I need to (require 'mwheel) for this to work on Linux?

rolandwalker commented 12 years ago

mwheel.el confuses me as it defines mouse-wheel-down-event to wheel-up. So if I use the portable definition, it breaks on Windows and OS X (I realize it the value is customizable, but the default is backwards.)

Therefore in commit bb009125780aa47fb3f6d8493e21c30e82bf5192, I bind mouse-4 and mouse-5 in addition to wheel-up and wheel down. This works for me under X11 on OS X (XQuartz). Let me know if it solves your issue on Linux.

Schnouki commented 12 years ago

Thanks for your help, but it still doesn't work. Sorry :) But once again the problem is that I don't even get the minor mode menu. It really looks like properties on the lighter string are ignored.

However I found another way to do this, and it seems to work: using easy-menu-define and putting it directly in the mode map. I've commited it here: https://github.com/Schnouki/fixmee/commit/76ea32aa2953ca6084437c84f46d2af5f920490e

Schnouki commented 12 years ago

And yes, mwheel looks confusing, but I think I understand. I had the same problem when I explained scrolling to my parents: when you scroll up, the content goes down :) And mouse-4 really is wheel-up, even if mwheel names it mouse-wheel-down-event. Anyway, I don't care that much as long as it works for me ;) Thanks for your help and for this package, it's much better than fixme-mode, fic-mode and all their forks.

rolandwalker commented 12 years ago

Thanks for the feedback. I will look at your fork and leave this issue open until everything is working out-of-the box on Linux.

rolandwalker commented 12 years ago

Ah, it's because, though the keymap ought to be in a 'local-map property, modeline later overwrites that property.

Duplicated the issue on multiple platforms and fixed with 49251e7b7fbc30a46a60c2391918c90a02f0cc03, committed to master.

Schnouki commented 12 years ago

That works great! And much simpler that what I did :) Thanks for that, and for the explanation.