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
	
	 Johan Malm
						Johan Malm