Index: work/gtk/layersel/layersel.c =================================================================== --- work/gtk/layersel/layersel.c (revision 8530) +++ work/gtk/layersel/layersel.c (revision 8531) @@ -117,6 +117,22 @@ return TRUE; } +static gboolean layer_select_press_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) +{ + layersel_layer_t *lsl = user_data; + switch(event->button.button) { + case 1: + printf("layer select!\n"); +#warning TODO: refresh both old selection and new selection + layer_vis_sync(lsl); + break; + case 3: + pcb_hid_actionl("Popup", "layer", NULL); + break; + } + return TRUE; +} + static gboolean group_any_press_cb(GtkWidget *widget, GdkEvent *event, layersel_grp_t *lsg, int onval) { switch(event->button.button) { @@ -154,7 +170,7 @@ static GtkWidget *build_layer(layersel_grp_t *lsg, layersel_layer_t *lsl, const char *name) { - GtkWidget *vis_box, *vis_ebox, *spring; + GtkWidget *vis_box, *vis_ebox, *ly_name, *ly_name_bx, *lab; lsl->lsg = lsg; lsl->box = gtkc_hbox_new(0, 0); @@ -168,10 +184,14 @@ vis_ebox = wrap_bind_click(vis_box, G_CALLBACK(layer_vis_press_cb), lsl); gtk_box_pack_start(GTK_BOX(lsl->box), vis_ebox, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(lsl->box), gtk_label_new(name), FALSE, FALSE, 10); + ly_name_bx = gtkc_hbox_new(0, 0); + ly_name = wrap_bind_click(ly_name_bx, G_CALLBACK(layer_select_press_cb), lsl); + lab = gtk_label_new(name); + gtk_box_pack_start(GTK_BOX(ly_name_bx), lab, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(lsl->box), ly_name, TRUE, TRUE, 10); - spring = gtkc_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(lsl->box), spring, TRUE, TRUE, 0); + gtk_misc_set_alignment(GTK_MISC(lab), 0, 0.5); + layer_vis_sync(lsl); return lsl->box; @@ -204,7 +224,7 @@ lsg->layers = gtkc_vbox_new(0, 0); opn = wrap_bind_click(gn_vert, G_CALLBACK(group_close_press_cb), lsg); gtk_box_pack_start(GTK_BOX(lsg->grp_open), opn, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(lsg->grp_open), lsg->layers, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(lsg->grp_open), lsg->layers, TRUE, TRUE, 0); /* install group name */ vlabel = gtk_label_new(gname); @@ -238,7 +258,7 @@ GtkWidget *ly; sprintf(tmp, "layer %d", n); ly = build_layer(lsg, &lsg->layer[n], tmp); - gtk_box_pack_start(GTK_BOX(lsg->layers), ly, FALSE, FALSE, 1); + gtk_box_pack_start(GTK_BOX(lsg->layers), ly, TRUE, TRUE, 1); } build_group_finish(lsg);