X-Git-Url: http://pileus.org/git/?p=wmpus;a=blobdiff_plain;f=wm-wmii.c;fp=wm-wmii.c;h=38a37250fea5441fa7518956b9036c13f1a32f25;hp=7654948ee5d6d61b1cb2877736b680149fb2cc80;hb=f223b1a30b6afe99f7d94980d11f3e42ce6b9c0a;hpb=a2379eee427e03e718b5307a6bd290453a058aca diff --git a/wm-wmii.c b/wm-wmii.c index 7654948..38a3725 100644 --- a/wm-wmii.c +++ b/wm-wmii.c @@ -126,6 +126,12 @@ static struct { int v, h; } move_dir; /******************** * Helper functions * ********************/ +static int sort_win(void *a, void *b) +{ + return ((win_t*)a)->x > ((win_t*)b)->x ? 1 : + ((win_t*)a)->x < ((win_t*)b)->x ? -1 : 0; +} + static win_t *get_focus(void) { if (!wm_tag || !wm_dpy) @@ -895,19 +901,9 @@ void wm_init(win_t *root) MARGIN = conf_get_int("main.margin", MARGIN); STACK = conf_get_int("main.stack", STACK); - /* Hack, fix screen order */ - list_t *screens = sys_info(root); - list_t *left = screens; - list_t *right = screens->next; - if (left && right && WIN(left)->x > WIN(right)->x) { - void *tmp = left->data; - left->data = right->data; - right->data = tmp; - } - wm = new0(wm_t); wm->root = root; - wm->screens = screens; + wm->screens = list_sort(sys_info(root), 0, sort_win); wm->tag = tag_new(wm->screens, 1); wm->tags = list_insert(NULL, wm->tag);