about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--keyboard.c8
-rw-r--r--keyboard.h14
2 files changed, 5 insertions, 17 deletions
diff --git a/keyboard.c b/keyboard.c
index ee50827..a964c34 100644
--- a/keyboard.c
+++ b/keyboard.c
@@ -44,10 +44,10 @@ kbd_init_layout(struct layout *l, uint32_t width, uint32_t height) {
 			y += l->keyheight;
 			x = 0;
 			rowlength = kbd_get_row_length(k + 1);
-		} else if (k->width > 0) {
+		} else if (k->type == Code) {
 			k->x = x;
 			k->y = y;
-			k->w = ((double)width / rowlength) * k->width;
+			k->w = width / rowlength;
 			x += k->w;
 		}
 		k->h = l->keyheight;
@@ -59,7 +59,7 @@ double
 kbd_get_row_length(struct key *k) {
 	double l = 0.0;
 	while ((k->type != Last) && (k->type != EndRow)) {
-		l += k->width;
+		l += 1.0;
 		k++;
 	}
 	return l;
@@ -132,7 +132,7 @@ kbd_draw_key(struct kbd *kb, struct key *k, enum key_draw_type type) {
 	if (kb->debug)
 		fprintf(stderr, "Draw key +%d+%d %dx%d -> %s\n", k->x, k->y, k->w, k->h,
 		        label);
-	struct clr_scheme *scheme = (k->scheme == 0) ? &(kb->scheme) : &(kb->scheme1);
+	struct clr_scheme *scheme = &(kb->scheme);
 	switch (type) {
 	case Unpress:
 		draw_inset(d, k->x, k->y, k->w, k->h, KBD_KEY_BORDER, scheme->fg);
diff --git a/keyboard.h b/keyboard.h
index af3e2b1..520ca05 100644
--- a/keyboard.h
+++ b/keyboard.h
@@ -15,15 +15,6 @@ struct kbd;
 enum key_type {
 	Pad = 0, // Padding, not a pressable key
 	Code,    // A normal key emitting a keycode
-	Mod,     // A modifier key
-	Copy,    // Copy key, copies the unicode value specified in code (creates and
-	         // activates temporary keymap)
-	         // used for keys that are not part of the keymap
-	Layout,  // Layout switch to a specific layout
-	BackLayer, // Layout switch to the layout that was previously active
-	NextLayer, // Layout switch to the next layout in the layers sequence
-	Compose,   // Compose modifier key, switches to a specific associated layout
-	           // upon next keypress
 	EndRow,    // Incidates the end of a key row
 	Last,      // Indicated the end of a layout
 };
@@ -57,13 +48,10 @@ struct clr_scheme {
 
 struct key {
 	const char *label;       // primary label
-	const double width;      // relative width (1.0)
-	const enum key_type type;
 
+	const enum key_type type;
 	struct layout *layout;   // pointer back to the parent layout that holds this
 	                         // key
-	const uint32_t code_mod; /* modifier to force when this key is pressed */
-	uint8_t scheme;          // index of the scheme to use
 	bool reset_mod;          /* reset modifiers when clicked */
 
 	// actual coordinates on the surface (pixels), will be computed automatically