tag.c
changeset 964 777a9d9ce70b
parent 963 7416c26a14db
equal deleted inserted replaced
963:7416c26a14db 964:777a9d9ce70b
     1 /* See LICENSE file for copyright and license details. */
     1 /* See LICENSE file for copyright and license details. */
     2 #include "dwm.h"
     2 #include "dwm.h"
     3 #include <regex.h>
     3 #include <regex.h>
     4 #include <stdio.h>
     4 #include <stdio.h>
     5 #include <stdlib.h>
     5 #include <stdlib.h>
     6 #include <string.h>
       
     7 #include <X11/Xatom.h>
       
     8 #include <X11/Xutil.h>
     6 #include <X11/Xutil.h>
     9 
     7 
    10 /* static */
     8 /* static */
    11 
     9 
    12 typedef struct {
    10 typedef struct {
   116 	for(i = 0; i < ntags; i++)
   114 	for(i = 0; i < ntags; i++)
   117 		sel->tags[i] = arg == NULL;
   115 		sel->tags[i] = arg == NULL;
   118 	i = idxoftag(arg);
   116 	i = idxoftag(arg);
   119 	if(i >= 0 && i < ntags)
   117 	if(i >= 0 && i < ntags)
   120 		sel->tags[i] = True;
   118 		sel->tags[i] = True;
   121 	saveconfig(sel);
   119 	saveprops(sel);
   122 	arrange();
   120 	arrange();
   123 }
   121 }
   124 
   122 
   125 void
   123 void
   126 togglefloating(const char *arg) {
   124 togglefloating(const char *arg) {
   127 	if(!sel || isfloating())
   125 	if(!sel || isfloating())
   128 		return;
   126 		return;
   129 	sel->isfloating = !sel->isfloating;
   127 	sel->isfloating = !sel->isfloating;
   130 	if(sel->isfloating) {
   128 	if(sel->isfloating) {
   131 		resize(sel, sel->x, sel->y, sel->w, sel->h, True);
   129 		resize(sel, sel->x, sel->y, sel->w, sel->h, True);
   132 		saveconfig(sel);
   130 		saveprops(sel);
   133 	}
   131 	}
   134 	arrange();
   132 	arrange();
   135 }
   133 }
   136 
   134 
   137 void
   135 void
   143 	i = idxoftag(arg);
   141 	i = idxoftag(arg);
   144 	sel->tags[i] = !sel->tags[i];
   142 	sel->tags[i] = !sel->tags[i];
   145 	for(j = 0; j < ntags && !sel->tags[j]; j++);
   143 	for(j = 0; j < ntags && !sel->tags[j]; j++);
   146 	if(j == ntags)
   144 	if(j == ntags)
   147 		sel->tags[i] = True;
   145 		sel->tags[i] = True;
   148 	saveconfig(sel);
   146 	saveprops(sel);
   149 	arrange();
   147 	arrange();
   150 }
   148 }
   151 
   149 
   152 void
   150 void
   153 toggleview(const char *arg) {
   151 toggleview(const char *arg) {
   156 	i = idxoftag(arg);
   154 	i = idxoftag(arg);
   157 	seltags[i] = !seltags[i];
   155 	seltags[i] = !seltags[i];
   158 	for(j = 0; j < ntags && !seltags[j]; j++);
   156 	for(j = 0; j < ntags && !seltags[j]; j++);
   159 	if(j == ntags)
   157 	if(j == ntags)
   160 		seltags[i] = True; /* cannot toggle last view */
   158 		seltags[i] = True; /* cannot toggle last view */
       
   159 	savedwmprops();
   161 	arrange();
   160 	arrange();
   162 }
   161 }
   163 
   162 
   164 void
   163 void
   165 view(const char *arg) {
   164 view(const char *arg) {
   168 	for(i = 0; i < ntags; i++)
   167 	for(i = 0; i < ntags; i++)
   169 		seltags[i] = arg == NULL;
   168 		seltags[i] = arg == NULL;
   170 	i = idxoftag(arg);
   169 	i = idxoftag(arg);
   171 	if(i >= 0 && i < ntags)
   170 	if(i >= 0 && i < ntags)
   172 		seltags[i] = True;
   171 		seltags[i] = True;
       
   172 	savedwmprops();
   173 	arrange();
   173 	arrange();
   174 }
   174 }