tag.c
changeset 956 484245788760
parent 954 18381a2cda42
child 958 8b502be8b8e0
equal deleted inserted replaced
955:b2518e01f7e3 956:484245788760
    36 	if(i < sizeof prop - 1)
    36 	if(i < sizeof prop - 1)
    37 		prop[i++] = c->isfloating ? '1' : '0';
    37 		prop[i++] = c->isfloating ? '1' : '0';
    38 	prop[i] = '\0';
    38 	prop[i] = '\0';
    39 	XChangeProperty(dpy, c->win, dwmconfig, XA_STRING, 8,
    39 	XChangeProperty(dpy, c->win, dwmconfig, XA_STRING, 8,
    40 			PropModeReplace, (unsigned char *)prop, i);
    40 			PropModeReplace, (unsigned char *)prop, i);
       
    41 }
       
    42 
       
    43 static unsigned int
       
    44 idxoftag(const char *tag) {
       
    45 	unsigned int i;
       
    46 
       
    47 	for(i = 0; i < ntags; i++)
       
    48 		if(tags[i] == tag)
       
    49 			return i;
       
    50 	return 0;
    41 }
    51 }
    42 
    52 
    43 /* extern */
    53 /* extern */
    44 
    54 
    45 void
    55 void
   133 	persistconfig(c);
   143 	persistconfig(c);
   134 }
   144 }
   135 
   145 
   136 void
   146 void
   137 tag(const char *arg) {
   147 tag(const char *arg) {
   138 	int i;
   148 	unsigned int i;
   139 
   149 
   140 	if(!sel)
   150 	if(!sel)
   141 		return;
   151 		return;
   142 	for(i = 0; i < ntags; i++)
   152 	for(i = 0; i < ntags; i++)
   143 		sel->tags[i] = arg == NULL;
   153 		sel->tags[i] = arg == NULL;
   144 	i = arg ? atoi(arg) : 0;
   154 	i = idxoftag(arg);
   145 	if(i >= 0 && i < ntags)
   155 	if(i >= 0 && i < ntags)
   146 		sel->tags[i] = True;
   156 		sel->tags[i] = True;
   147 	persistconfig(sel);
   157 	persistconfig(sel);
   148 	arrange();
   158 	arrange();
   149 }
   159 }
   160 	arrange();
   170 	arrange();
   161 }
   171 }
   162 
   172 
   163 void
   173 void
   164 toggletag(const char *arg) {
   174 toggletag(const char *arg) {
   165 	int i, j;
   175 	unsigned int i, j;
   166 
   176 
   167 	if(!sel)
   177 	if(!sel)
   168 		return;
   178 		return;
   169 	i = arg ? atoi(arg) : 0;
   179 	i = idxoftag(arg);
   170 	sel->tags[i] = !sel->tags[i];
   180 	sel->tags[i] = !sel->tags[i];
   171 	for(j = 0; j < ntags && !sel->tags[j]; j++);
   181 	for(j = 0; j < ntags && !sel->tags[j]; j++);
   172 	if(j == ntags)
   182 	if(j == ntags)
   173 		sel->tags[i] = True;
   183 		sel->tags[i] = True;
   174 	persistconfig(sel);
   184 	persistconfig(sel);
   175 	arrange();
   185 	arrange();
   176 }
   186 }
   177 
   187 
   178 void
   188 void
   179 toggleview(const char *arg) {
   189 toggleview(const char *arg) {
   180 	int i, j;
   190 	unsigned int i, j;
   181 
   191 
   182 	i = arg ? atoi(arg) : 0;
   192 	i = idxoftag(arg);
   183 	seltag[i] = !seltag[i];
   193 	seltag[i] = !seltag[i];
   184 	for(j = 0; j < ntags && !seltag[j]; j++);
   194 	for(j = 0; j < ntags && !seltag[j]; j++);
   185 	if(j == ntags)
   195 	if(j == ntags)
   186 		seltag[i] = True; /* cannot toggle last view */
   196 		seltag[i] = True; /* cannot toggle last view */
   187 	arrange();
   197 	arrange();
   188 }
   198 }
   189 
   199 
   190 void
   200 void
   191 view(const char *arg) {
   201 view(const char *arg) {
   192 	int i;
   202 	unsigned int i;
   193 
   203 
   194 	for(i = 0; i < ntags; i++)
   204 	for(i = 0; i < ntags; i++)
   195 		seltag[i] = arg == NULL;
   205 		seltag[i] = arg == NULL;
   196 	i = arg ? atoi(arg) : 0;
   206 	i = idxoftag(arg);
   197 	if(i >= 0 && i < ntags)
   207 	if(i >= 0 && i < ntags)
   198 		seltag[i] = True;
   208 		seltag[i] = True;
   199 	arrange();
   209 	arrange();
   200 }
   210 }