diff --git a/src/server.c b/src/server.c index d95a444..f71502d 100644 --- a/src/server.c +++ b/src/server.c @@ -302,6 +302,11 @@ int monitor_includes_monitor(const void *monitor1, const void *monitor2) } } +void sort_monitors() +{ + qsort(server.monitors, server.num_monitors, sizeof(Monitor), compare_monitor_pos); +} + void get_monitors() { if (XineramaIsActive(server.display)) { diff --git a/src/server.h b/src/server.h index 22c0095..3ee9f0f 100644 --- a/src/server.h +++ b/src/server.h @@ -159,6 +159,7 @@ void get_root_pixmap(); // detect monitors and desktops void get_monitors(); +void sort_monitors(); void print_monitors(); void get_desktops(); void server_get_number_of_desktops(); diff --git a/src/tint.c b/src/tint.c index 2adc305..ee32635 100644 --- a/src/tint.c +++ b/src/tint.c @@ -547,6 +547,9 @@ void init_X11_pre_config() void init_X11_post_config() { + if (primary_monitor_first) + sort_monitors(); + server_init_visual(); gboolean need_sigchld = FALSE;