mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	fix: can't switch layout in ~0 tag
This commit is contained in:
		
							parent
							
								
									f7f6e25088
								
							
						
					
					
						commit
						c21ba86fd4
					
				
					 1 changed files with 13 additions and 9 deletions
				
			
		| 
						 | 
					@ -418,9 +418,12 @@ void restore_minimized(const Arg *arg) {
 | 
				
			||||||
void // 17
 | 
					void // 17
 | 
				
			||||||
setlayout(const Arg *arg) {
 | 
					setlayout(const Arg *arg) {
 | 
				
			||||||
	int jk;
 | 
						int jk;
 | 
				
			||||||
 | 
						unsigned int target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
 | 
				
			||||||
 | 
																		 : selmon->pertag->prevtag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
						for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
				
			||||||
		if (strcmp(layouts[jk].name, arg->v) == 0) {
 | 
							if (strcmp(layouts[jk].name, arg->v) == 0) {
 | 
				
			||||||
			selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[jk];
 | 
								selmon->pertag->ltidxs[target_tag] = &layouts[jk];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			arrange(selmon, false);
 | 
								arrange(selmon, false);
 | 
				
			||||||
			printstatus();
 | 
								printstatus();
 | 
				
			||||||
| 
						 | 
					@ -820,17 +823,17 @@ void switch_layout(const Arg *arg) {
 | 
				
			||||||
	int jk, ji;
 | 
						int jk, ji;
 | 
				
			||||||
	char *target_layout_name = NULL;
 | 
						char *target_layout_name = NULL;
 | 
				
			||||||
	unsigned int len;
 | 
						unsigned int len;
 | 
				
			||||||
 | 
						unsigned int target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
 | 
				
			||||||
 | 
																		 : selmon->pertag->prevtag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (config.circle_layout_count != 0) {
 | 
						if (config.circle_layout_count != 0) {
 | 
				
			||||||
		for (jk = 0; jk < config.circle_layout_count; jk++) {
 | 
							for (jk = 0; jk < config.circle_layout_count; jk++) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			len = MAX(
 | 
								len = MAX(strlen(config.circle_layout[jk]),
 | 
				
			||||||
				strlen(config.circle_layout[jk]),
 | 
										  strlen(selmon->pertag->ltidxs[target_tag]->name));
 | 
				
			||||||
				strlen(selmon->pertag->ltidxs[selmon->pertag->curtag]->name));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (strncmp(config.circle_layout[jk],
 | 
								if (strncmp(config.circle_layout[jk],
 | 
				
			||||||
						selmon->pertag->ltidxs[selmon->pertag->curtag]->name,
 | 
											selmon->pertag->ltidxs[target_tag]->name, len) == 0) {
 | 
				
			||||||
						len) == 0) {
 | 
					 | 
				
			||||||
				target_layout_name = jk == config.circle_layout_count - 1
 | 
									target_layout_name = jk == config.circle_layout_count - 1
 | 
				
			||||||
										 ? config.circle_layout[0]
 | 
															 ? config.circle_layout[0]
 | 
				
			||||||
										 : config.circle_layout[jk + 1];
 | 
															 : config.circle_layout[jk + 1];
 | 
				
			||||||
| 
						 | 
					@ -845,7 +848,8 @@ void switch_layout(const Arg *arg) {
 | 
				
			||||||
		for (ji = 0; ji < LENGTH(layouts); ji++) {
 | 
							for (ji = 0; ji < LENGTH(layouts); ji++) {
 | 
				
			||||||
			len = MAX(strlen(layouts[ji].name), strlen(target_layout_name));
 | 
								len = MAX(strlen(layouts[ji].name), strlen(target_layout_name));
 | 
				
			||||||
			if (strncmp(layouts[ji].name, target_layout_name, len) == 0) {
 | 
								if (strncmp(layouts[ji].name, target_layout_name, len) == 0) {
 | 
				
			||||||
				selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[ji];
 | 
									selmon->pertag->ltidxs[target_tag] = &layouts[ji];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -857,8 +861,8 @@ void switch_layout(const Arg *arg) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
						for (jk = 0; jk < LENGTH(layouts); jk++) {
 | 
				
			||||||
		if (strcmp(layouts[jk].name,
 | 
							if (strcmp(layouts[jk].name,
 | 
				
			||||||
				   selmon->pertag->ltidxs[selmon->pertag->curtag]->name) == 0) {
 | 
									   selmon->pertag->ltidxs[target_tag]->name) == 0) {
 | 
				
			||||||
			selmon->pertag->ltidxs[selmon->pertag->curtag] =
 | 
								selmon->pertag->ltidxs[target_tag] =
 | 
				
			||||||
				jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
 | 
									jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
 | 
				
			||||||
			arrange(selmon, false);
 | 
								arrange(selmon, false);
 | 
				
			||||||
			printstatus();
 | 
								printstatus();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue