mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
config: support <mouse><default />
This loads default mousebinds and provides a way to keep config files
simpler whilst allowing user specific binds.
Note that if no rc.xml is found, or if no <mouse><mousebind> entries
exist, the same default mousebinds will be loaded even if the <default />
element is not provided.
Example usage:
<mouse>
<default />
<context name="Root">
<mousebind button="Right" action="Press">
<action name="Execute" command="my-menu-application" />
</mousebind>
</context>
</mouse>
This commit is contained in:
parent
edc5338af4
commit
3d337857b7
3 changed files with 13 additions and 1 deletions
|
|
@ -160,6 +160,13 @@ Configuration must be wrapped in a <labwc_config> root-node.
|
|||
- DoubleClick: Two presses within the doubleClickTime.
|
||||
- Drag: Pressing the button within the context, then moving the cursor
|
||||
|
||||
*<mouse><default />*
|
||||
Load default mousebinds. This is an addition to the openbox
|
||||
specification and provides a way to keep config files simpler whilst
|
||||
allowing user specific binds. Note that if no rc.xml is found, or if no
|
||||
<mouse><mousebind> entries exist, the same default mousebinds will be
|
||||
loaded even if the <default /> element is not provided.
|
||||
|
||||
# LIBINPUT
|
||||
|
||||
*<libinput><device category="">*
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ enum font_place {
|
|||
};
|
||||
|
||||
static void load_default_key_bindings(void);
|
||||
static void load_default_mouse_bindings(void);
|
||||
|
||||
static void
|
||||
fill_keybind(char *nodename, char *content)
|
||||
|
|
@ -333,6 +334,9 @@ entry(xmlNode *node, char *nodename, char *content)
|
|||
if (!strcmp(nodename, "default.keyboard")) {
|
||||
load_default_key_bindings();
|
||||
return;
|
||||
} else if (!strcmp(nodename, "default.mouse")) {
|
||||
load_default_mouse_bindings();
|
||||
return;
|
||||
}
|
||||
|
||||
/* handle the rest */
|
||||
|
|
|
|||
|
|
@ -619,7 +619,7 @@ handle_press_mousebinding(struct view *view, struct server *server,
|
|||
bool activated_any = false;
|
||||
bool activated_any_frame = false;
|
||||
|
||||
wl_list_for_each_reverse(mousebind, &rc.mousebinds, link) {
|
||||
wl_list_for_each(mousebind, &rc.mousebinds, link) {
|
||||
if (ssd_part_contains(mousebind->context, view_area)
|
||||
&& mousebind->button == button
|
||||
&& modifiers == mousebind->modifiers) {
|
||||
|
|
@ -655,6 +655,7 @@ handle_press_mousebinding(struct view *view, struct server *server,
|
|||
activated_any = true;
|
||||
activated_any_frame |= mousebind->context == LAB_SSD_FRAME;
|
||||
actions_run(view, server, &mousebind->actions, resize_edges);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return activated_any && activated_any_frame;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue