From 0b15176246c8f399c64d9046d5cc8a752f744b0b Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Fri, 9 Nov 2007 12:17:19 +0000 Subject: [PATCH] (w32_pass_multimedia_buttons_to_system): New user option. (syms_of_w32fns): Export and initialize it. (w32_wnd_proc): Pass WM_APPCOMMAND on to w32_read_socket. --- src/w32fns.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/w32fns.c b/src/w32fns.c index e5c730a528c..6199b16bb2f 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -145,6 +145,9 @@ int w32_mouse_move_interval; /* Flag to indicate if XBUTTON events should be passed on to Windows. */ int w32_pass_extra_mouse_buttons_to_system; +/* Flag to indicate if media keys should be passed on to Windows. */ +int w32_pass_multimedia_buttons_to_system; + /* Non nil if no window manager is in use. */ Lisp_Object Vx_no_window_manager; @@ -3383,6 +3386,10 @@ w32_wnd_proc (hwnd, msg, wParam, lParam) signal_user_input (); return 0; + case WM_APPCOMMAND: + if (w32_pass_multimedia_buttons_to_system) + goto dflt; + /* Otherwise, pass to lisp, the same way we do with mousehwheel. */ case WM_MOUSEHWHEEL: wmsg.dwModifiers = w32_get_modifiers (); my_post_msg (&wmsg, hwnd, msg, wParam, lParam); @@ -8814,6 +8821,30 @@ If this variable is non-nil, Emacs will pass them on, allowing the system to handle them. */); w32_pass_extra_mouse_buttons_to_system = 0; + DEFVAR_BOOL ("w32-pass-multimedia-buttons-to-system", + &w32_pass_multimedia_buttons_to_system, + doc: /* If non-nil, media buttons are passed to Windows. +Some modern keyboards contain buttons for controlling media players, web +browsers and other applications. Generally these buttons are handled on a +system wide basis, but by setting this to nil they are made available +to Emacs for binding. Depending on your keyboard, additional keys that +may be available are: + +browser-back, browser-forward, browser-refresh, browser-stop, +browser-search, browser-favorites, browser-home, +mail, mail-reply, mail-forward, mail-send, +app-1, app-2, +help, find, new, open, close, save, print, undo, redo, copy, cut, paste, +spell-check, correction-list, toggle-dictate-command, +media-next, media-previous, media-stop, media-play-pause, media-select, +media-play, media-pause, media-record, media-fast-forward, media-rewind, +media-channel-up, media-channel-down, +volume-mute, volume-up, volume-down, +mic-volume-mute, mic-volume-down, mic-volume-up, mic-toggle, +bass-down, bass-boost, bass-up, treble-down, treble-up + */); + w32_pass_multimedia_buttons_to_system = 1; + DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape, doc: /* The shape of the pointer when over text. Changing the value does not affect existing frames -- 2.39.2