mirror of
https://github.com/gryf/wmaker.git
synced 2026-03-19 09:13:33 +01:00
Make mouse wheel window focus configurable.
With commit e45a3bc07d a behavior change
was introduced that may disrupt the workflow of a user who may
intentionally want to give focus to a window without bringing it to the
front. Using the scroll wheel is less intrusive compared to the left,
right, and especially the middle (in the case of a terminal) mouse
buttons.
This commit introduces the ability to change the behavior by enabling or
disabling the ability to focus a window with mouse wheel in the expert
panel.
This commit is contained in:
@@ -130,6 +130,8 @@ static struct expert_option {
|
||||
{ N_("Keep dock on primary head."),
|
||||
/* default: */ False, OPTION_WMAKER, "KeepDockOnPrimaryHead"},
|
||||
|
||||
{ N_("Allow windows to take focus using mouse wheel."),
|
||||
/* default: */ False, OPTION_WMAKER, "MouseWheelFocus"},
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -378,6 +378,7 @@ extern struct WPreferences {
|
||||
char auto_focus; /* focus window when it's mapped */
|
||||
char *icon_back_file; /* background image for icons */
|
||||
char enforce_icon_margin; /* auto-shrink icon images */
|
||||
char mouse_wheel_focus; /* allow focus window with mouse wheel */
|
||||
|
||||
WCoord *root_menu_pos; /* initial position of the root menu*/
|
||||
WCoord *app_menu_pos;
|
||||
|
||||
@@ -537,6 +537,8 @@ WDefaultEntry optionList[] = {
|
||||
NULL, getPropList, setHotCornerActions, NULL, NULL},
|
||||
{"WindowListAppIcons", "NO", NULL,
|
||||
&wPreferences.window_list_app_icons, getBool, NULL, NULL, NULL},
|
||||
{"MouseWheelFocus", "NO", NULL,
|
||||
&wPreferences.mouse_wheel_focus, getBool, NULL, NULL, NULL},
|
||||
|
||||
/* style options */
|
||||
|
||||
|
||||
@@ -2984,7 +2984,7 @@ static void frameMouseDown(WObjDescriptor *desc, XEvent *event)
|
||||
|
||||
CloseWindowMenu(wwin->screen_ptr);
|
||||
|
||||
if (event->xbutton.button != Button4 && event->xbutton.button != Button5 && !(event->xbutton.state & ControlMask) && !WFLAGP(wwin, no_focusable))
|
||||
if ((wPreferences.mouse_wheel_focus || (event->xbutton.button != Button4 && event->xbutton.button != Button5)) && !(event->xbutton.state & ControlMask) && !WFLAGP(wwin, no_focusable))
|
||||
wSetFocusTo(wwin->screen_ptr, wwin);
|
||||
|
||||
if (event->xbutton.button == Button1)
|
||||
|
||||
Reference in New Issue
Block a user