mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	fix: miss apply gap change when use keybind to change gap value
This commit is contained in:
		
							parent
							
								
									81d3caf63e
								
							
						
					
					
						commit
						4738fe02c2
					
				
					 3 changed files with 32 additions and 27 deletions
				
			
		| 
						 | 
					@ -1783,6 +1783,10 @@ void reload_config(const Arg *arg) {
 | 
				
			||||||
      m->pertag->nmasters[i] = default_nmaster;
 | 
					      m->pertag->nmasters[i] = default_nmaster;
 | 
				
			||||||
      m->pertag->mfacts[i] = default_mfact;
 | 
					      m->pertag->mfacts[i] = default_mfact;
 | 
				
			||||||
      m->pertag->smfacts[i] = default_smfact;
 | 
					      m->pertag->smfacts[i] = default_smfact;
 | 
				
			||||||
 | 
					      m->gappih = gappih;
 | 
				
			||||||
 | 
					      m->gappiv = gappiv;
 | 
				
			||||||
 | 
					      m->gappoh = gappoh;
 | 
				
			||||||
 | 
					      m->gappov = gappov;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,6 @@ void exchange_client(const Arg *arg);
 | 
				
			||||||
void killclient(const Arg *arg);
 | 
					void killclient(const Arg *arg);
 | 
				
			||||||
void toggleglobal(const Arg *arg);
 | 
					void toggleglobal(const Arg *arg);
 | 
				
			||||||
void incnmaster(const Arg *arg);
 | 
					void incnmaster(const Arg *arg);
 | 
				
			||||||
void incgaps(const Arg *arg);
 | 
					 | 
				
			||||||
void focusmon(const Arg *arg);
 | 
					void focusmon(const Arg *arg);
 | 
				
			||||||
void focusstack(const Arg *arg);
 | 
					void focusstack(const Arg *arg);
 | 
				
			||||||
void chvt(const Arg *arg);
 | 
					void chvt(const Arg *arg);
 | 
				
			||||||
| 
						 | 
					@ -42,12 +41,13 @@ void bind_to_view(const Arg *arg);
 | 
				
			||||||
void toggletag(const Arg *arg);
 | 
					void toggletag(const Arg *arg);
 | 
				
			||||||
void toggleview(const Arg *arg);
 | 
					void toggleview(const Arg *arg);
 | 
				
			||||||
void tag(const Arg *arg);
 | 
					void tag(const Arg *arg);
 | 
				
			||||||
 | 
					void incgaps(const Arg *arg);
 | 
				
			||||||
 | 
					void incigaps(const Arg *arg);
 | 
				
			||||||
void incihgaps(const Arg *arg);
 | 
					void incihgaps(const Arg *arg);
 | 
				
			||||||
void incivgaps(const Arg *arg);
 | 
					void incivgaps(const Arg *arg);
 | 
				
			||||||
void incogaps(const Arg *arg);
 | 
					void incogaps(const Arg *arg);
 | 
				
			||||||
void incohgaps(const Arg *arg);
 | 
					void incohgaps(const Arg *arg);
 | 
				
			||||||
void incovgaps(const Arg *arg);
 | 
					void incovgaps(const Arg *arg);
 | 
				
			||||||
void incigaps(const Arg *arg);
 | 
					 | 
				
			||||||
void defaultgaps(const Arg *arg);
 | 
					void defaultgaps(const Arg *arg);
 | 
				
			||||||
void togglefakefullscreen(const Arg *arg);
 | 
					void togglefakefullscreen(const Arg *arg);
 | 
				
			||||||
void toggleoverlay(const Arg *arg);
 | 
					void toggleoverlay(const Arg *arg);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										51
									
								
								src/maomao.c
									
										
									
									
									
								
							
							
						
						
									
										51
									
								
								src/maomao.c
									
										
									
									
									
								
							| 
						 | 
					@ -3810,6 +3810,11 @@ void incigaps(const Arg *arg) {
 | 
				
			||||||
          selmon->gappiv + arg->i);
 | 
					          selmon->gappiv + arg->i);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void incogaps(const Arg *arg) {
 | 
				
			||||||
 | 
					  setgaps(selmon->gappoh + arg->i, selmon->gappov + arg->i, selmon->gappih,
 | 
				
			||||||
 | 
					          selmon->gappiv);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void incihgaps(const Arg *arg) {
 | 
					void incihgaps(const Arg *arg) {
 | 
				
			||||||
  setgaps(selmon->gappoh, selmon->gappov, selmon->gappih + arg->i,
 | 
					  setgaps(selmon->gappoh, selmon->gappov, selmon->gappih + arg->i,
 | 
				
			||||||
          selmon->gappiv);
 | 
					          selmon->gappiv);
 | 
				
			||||||
| 
						 | 
					@ -3820,13 +3825,13 @@ void incivgaps(const Arg *arg) {
 | 
				
			||||||
          selmon->gappiv + arg->i);
 | 
					          selmon->gappiv + arg->i);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void incogaps(const Arg *arg) {
 | 
					void incohgaps(const Arg *arg) {
 | 
				
			||||||
  setgaps(selmon->gappoh + arg->i, selmon->gappov + arg->i, selmon->gappih,
 | 
					  setgaps(selmon->gappoh + arg->i, selmon->gappov, selmon->gappih,
 | 
				
			||||||
          selmon->gappiv);
 | 
					          selmon->gappiv);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void incohgaps(const Arg *arg) {
 | 
					void incovgaps(const Arg *arg) {
 | 
				
			||||||
  setgaps(selmon->gappoh + arg->i, selmon->gappov, selmon->gappih,
 | 
					  setgaps(selmon->gappoh, selmon->gappov + arg->i, selmon->gappih,
 | 
				
			||||||
          selmon->gappiv);
 | 
					          selmon->gappiv);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3836,10 +3841,6 @@ void requestmonstate(struct wl_listener *listener, void *data) {
 | 
				
			||||||
  updatemons(NULL, NULL);
 | 
					  updatemons(NULL, NULL);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void incovgaps(const Arg *arg) {
 | 
					 | 
				
			||||||
  setgaps(selmon->gappoh, selmon->gappov + arg->i, selmon->gappih,
 | 
					 | 
				
			||||||
          selmon->gappiv);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
void inputdevice(struct wl_listener *listener, void *data) {
 | 
					void inputdevice(struct wl_listener *listener, void *data) {
 | 
				
			||||||
  /* This event is raised by the backend when a new input device becomes
 | 
					  /* This event is raised by the backend when a new input device becomes
 | 
				
			||||||
   * available. */
 | 
					   * available. */
 | 
				
			||||||
| 
						 | 
					@ -5994,10 +5995,10 @@ void fibonacci(Monitor *mon, int s) {
 | 
				
			||||||
  if (n == 0)
 | 
					  if (n == 0)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nx = mon->w.x + gappoh;
 | 
					  nx = mon->w.x + mon->gappoh;
 | 
				
			||||||
  ny = mon->w.y + gappov;
 | 
					  ny = mon->w.y + mon->gappov;
 | 
				
			||||||
  nw = mon->w.width - 2 * gappoh;
 | 
					  nw = mon->w.width - 2 * mon->gappoh;
 | 
				
			||||||
  nh = mon->w.height - 2 * gappov;
 | 
					  nh = mon->w.height - 2 * mon->gappov;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  wl_list_for_each(c, &clients, link) if (VISIBLEON(c, mon) && !c->isfloating &&
 | 
					  wl_list_for_each(c, &clients, link) if (VISIBLEON(c, mon) && !c->isfloating &&
 | 
				
			||||||
                                          !c->iskilling && !c->isfullscreen &&
 | 
					                                          !c->iskilling && !c->isfullscreen &&
 | 
				
			||||||
| 
						 | 
					@ -6036,13 +6037,13 @@ void fibonacci(Monitor *mon, int s) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (i == 0) {
 | 
					      if (i == 0) {
 | 
				
			||||||
        if (n != 1)
 | 
					        if (n != 1)
 | 
				
			||||||
          nw = (mon->w.width - 2 * gappoh) *
 | 
					          nw = (mon->w.width - 2 * mon->gappoh) *
 | 
				
			||||||
               mon->pertag->mfacts[mon->pertag->curtag];
 | 
					               mon->pertag->mfacts[mon->pertag->curtag];
 | 
				
			||||||
        ny = mon->w.y + gappov;
 | 
					        ny = mon->w.y + mon->gappov;
 | 
				
			||||||
      } else if (i == 1) {
 | 
					      } else if (i == 1) {
 | 
				
			||||||
        nw = mon->w.width - 2 * gappoh - nw;
 | 
					        nw = mon->w.width - 2 * mon->gappoh - nw;
 | 
				
			||||||
      } else if (i == 2)
 | 
					      } else if (i == 2)
 | 
				
			||||||
        nh = mon->w.height - 2 * gappov - nh;
 | 
					        nh = mon->w.height - 2 * mon->gappov - nh;
 | 
				
			||||||
      i++;
 | 
					      i++;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6057,8 +6058,8 @@ void fibonacci(Monitor *mon, int s) {
 | 
				
			||||||
                                          !c->iskilling && !c->isfullscreen &&
 | 
					                                          !c->iskilling && !c->isfullscreen &&
 | 
				
			||||||
                                          !c->ismaxmizescreen &&
 | 
					                                          !c->ismaxmizescreen &&
 | 
				
			||||||
                                          !c->animation.tagouting) {
 | 
					                                          !c->animation.tagouting) {
 | 
				
			||||||
    gih = find_client_by_direction(c, dir_right, false, true) ? gappih : 0;
 | 
					    gih = find_client_by_direction(c, dir_right, false, true) ? mon->gappih : 0;
 | 
				
			||||||
    giv = find_client_by_direction(c, dir_down, false, true) ? gappiv : 0;
 | 
					    giv = find_client_by_direction(c, dir_down, false, true) ? mon->gappiv : 0;
 | 
				
			||||||
    resize(c,
 | 
					    resize(c,
 | 
				
			||||||
           (struct wlr_box){.x = c->geom.x,
 | 
					           (struct wlr_box){.x = c->geom.x,
 | 
				
			||||||
                            .y = c->geom.y,
 | 
					                            .y = c->geom.y,
 | 
				
			||||||
| 
						 | 
					@ -6188,7 +6189,7 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
  int focus_client_index = 0;
 | 
					  int focus_client_index = 0;
 | 
				
			||||||
  bool need_scroller = false;
 | 
					  bool need_scroller = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  unsigned int max_client_width = m->w.width - 2 * scroller_structs - gappih;
 | 
					  unsigned int max_client_width = m->w.width - 2 * scroller_structs - m->gappih;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 第一次遍历,计算 n 的值
 | 
					  // 第一次遍历,计算 n 的值
 | 
				
			||||||
  wl_list_for_each(c, &clients, link) {
 | 
					  wl_list_for_each(c, &clients, link) {
 | 
				
			||||||
| 
						 | 
					@ -6223,9 +6224,9 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (n == 1) {
 | 
					  if (n == 1) {
 | 
				
			||||||
    c = tempClients[0];
 | 
					    c = tempClients[0];
 | 
				
			||||||
    target_geom.height = m->w.height - 2 * gappov;
 | 
					    target_geom.height = m->w.height - 2 * m->gappov;
 | 
				
			||||||
    target_geom.width =
 | 
					    target_geom.width =
 | 
				
			||||||
        (m->w.width - 2 * gappoh) * scroller_default_proportion_single;
 | 
					        (m->w.width - 2 * m->gappoh) * scroller_default_proportion_single;
 | 
				
			||||||
    target_geom.x = m->w.x + (m->w.width - target_geom.width) / 2;
 | 
					    target_geom.x = m->w.x + (m->w.width - target_geom.width) / 2;
 | 
				
			||||||
    target_geom.y = m->w.y + (m->w.height - target_geom.height) / 2;
 | 
					    target_geom.y = m->w.y + (m->w.height - target_geom.height) / 2;
 | 
				
			||||||
    resize(c, target_geom, 0);
 | 
					    resize(c, target_geom, 0);
 | 
				
			||||||
| 
						 | 
					@ -6263,7 +6264,7 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  target_geom.height = m->w.height - 2 * gappov;
 | 
					  target_geom.height = m->w.height - 2 * m->gappov;
 | 
				
			||||||
  target_geom.width = max_client_width * c->scroller_proportion;
 | 
					  target_geom.width = max_client_width * c->scroller_proportion;
 | 
				
			||||||
  target_geom.y = m->w.y + (m->w.height - target_geom.height) / 2;
 | 
					  target_geom.y = m->w.y + (m->w.height - target_geom.height) / 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6272,7 +6273,7 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
        ((!m->prevsel ||
 | 
					        ((!m->prevsel ||
 | 
				
			||||||
          (m->prevsel->scroller_proportion * max_client_width) +
 | 
					          (m->prevsel->scroller_proportion * max_client_width) +
 | 
				
			||||||
                  (root_client->scroller_proportion * max_client_width) >
 | 
					                  (root_client->scroller_proportion * max_client_width) >
 | 
				
			||||||
              m->w.width - 2 * scroller_structs - gappih) &&
 | 
					              m->w.width - 2 * scroller_structs - m->gappih) &&
 | 
				
			||||||
         scroller_prefer_center)) {
 | 
					         scroller_prefer_center)) {
 | 
				
			||||||
      target_geom.x = m->w.x + (m->w.width - target_geom.width) / 2;
 | 
					      target_geom.x = m->w.x + (m->w.width - target_geom.width) / 2;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
| 
						 | 
					@ -6292,7 +6293,7 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
  for (i = 1; i <= focus_client_index; i++) {
 | 
					  for (i = 1; i <= focus_client_index; i++) {
 | 
				
			||||||
    c = tempClients[focus_client_index - i];
 | 
					    c = tempClients[focus_client_index - i];
 | 
				
			||||||
    target_geom.width = max_client_width * c->scroller_proportion;
 | 
					    target_geom.width = max_client_width * c->scroller_proportion;
 | 
				
			||||||
    target_geom.x = tempClients[focus_client_index - i + 1]->geom.x - gappih -
 | 
					    target_geom.x = tempClients[focus_client_index - i + 1]->geom.x - m->gappih -
 | 
				
			||||||
                    target_geom.width;
 | 
					                    target_geom.width;
 | 
				
			||||||
    resize(c, target_geom, 0);
 | 
					    resize(c, target_geom, 0);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -6300,7 +6301,7 @@ void scroller(Monitor *m, unsigned int gappo, unsigned int gappi) {
 | 
				
			||||||
  for (i = 1; i < n - focus_client_index; i++) {
 | 
					  for (i = 1; i < n - focus_client_index; i++) {
 | 
				
			||||||
    c = tempClients[focus_client_index + i];
 | 
					    c = tempClients[focus_client_index + i];
 | 
				
			||||||
    target_geom.width = max_client_width * c->scroller_proportion;
 | 
					    target_geom.width = max_client_width * c->scroller_proportion;
 | 
				
			||||||
    target_geom.x = tempClients[focus_client_index + i - 1]->geom.x + gappih +
 | 
					    target_geom.x = tempClients[focus_client_index + i - 1]->geom.x + m->gappih +
 | 
				
			||||||
                    tempClients[focus_client_index + i - 1]->geom.width;
 | 
					                    tempClients[focus_client_index + i - 1]->geom.width;
 | 
				
			||||||
    resize(c, target_geom, 0);
 | 
					    resize(c, target_geom, 0);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue