layout.c
changeset 966 3ad7903c9e83
parent 965 b3f4b0b3a5d7
equal deleted inserted replaced
965:b3f4b0b3a5d7 966:3ad7903c9e83
    96 
    96 
    97 void
    97 void
    98 initlayouts(void) {
    98 initlayouts(void) {
    99 	unsigned int i, w;
    99 	unsigned int i, w;
   100 
   100 
   101 	/* TODO deserialize ltidx if present */
       
   102 	nlayouts = sizeof layouts / sizeof layouts[0];
   101 	nlayouts = sizeof layouts / sizeof layouts[0];
   103 	for(blw = i = 0; i < nlayouts; i++) {
   102 	for(blw = i = 0; i < nlayouts; i++) {
   104 		w = textw(layouts[i].symbol);
   103 		w = textw(layouts[i].symbol);
   105 		if(w > blw)
   104 		if(w > blw)
   106 			blw = w;
   105 			blw = w;
   108 }
   107 }
   109 
   108 
   110 void
   109 void
   111 loaddwmprops(void) {
   110 loaddwmprops(void) {
   112 	unsigned int i;
   111 	unsigned int i;
   113 	XTextProperty name;
   112 
   114 
   113 	if(gettextprop(root, dwmprops, prop, sizeof prop)) {
   115 	/* check if window has set a property */
       
   116 	name.nitems = 0;
       
   117 	XGetTextProperty(dpy, root, &name, dwmprops);
       
   118 	if(name.nitems && name.encoding == XA_STRING) {
       
   119 		strncpy(prop, (char *)name.value, sizeof prop - 1);
       
   120 		prop[sizeof prop - 1] = '\0';
       
   121 		XFree(name.value);
       
   122 		for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++)
   114 		for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++)
   123 			seltags[i] = prop[i] == '1';
   115 			seltags[i] = prop[i] == '1';
   124 		if(i < sizeof prop - 1 && prop[i] != '\0') {
   116 		if(i < sizeof prop - 1 && prop[i] != '\0') {
   125 			i = prop[i];
   117 			if(prop[i] < nlayouts)
   126 			if(i < nlayouts)
   118 				ltidx = prop[i];
   127 				ltidx = i;
       
   128 		}
   119 		}
   129 	}
   120 	}
   130 }
   121 }
   131 
   122 
   132 Client *
   123 Client *