]> git.lizzy.rs Git - bspwm.git/blobdiff - monitor.c
New setting: merge_overlapping_monitors
[bspwm.git] / monitor.c
index 5aa9605e0aeebc1530d7e6da7c9ce0bcb2b0e0ee..596e8fc4e1b58f941664e9cb763eae49a36eb5f0 100644 (file)
--- a/monitor.c
+++ b/monitor.c
@@ -323,9 +323,9 @@ monitor_t *nearest_monitor(monitor_t *m, direction_t dir, desktop_select_t sel)
        return nearest;
 }
 
-bool import_monitors(void)
+bool update_monitors(void)
 {
-       PUTS("import monitors");
+       PUTS("update monitors");
        xcb_randr_get_screen_resources_current_reply_t *sres = xcb_randr_get_screen_resources_current_reply(dpy, xcb_randr_get_screen_resources_current(dpy, root), NULL);
        if (sres == NULL)
                return false;
@@ -392,26 +392,28 @@ bool import_monitors(void)
        free(gpo);
 
        /* handle overlapping monitors */
-       m = mon_head;
-       while (m != NULL) {
-               monitor_t *next = m->next;
-               if (m->wired) {
-                       for (monitor_t *mb = mon_head; mb != NULL; mb = mb->next)
-                               if (mb != m && mb->wired &&
-                                   (m->desk == NULL || mb->desk == NULL) &&
-                                   contains(mb->rectangle, m->rectangle)) {
-                                       if (mm == m)
-                                               mm = mb;
-                                       merge_monitors(m, mb);
-                                       remove_monitor(m);
-                                       break;
-                               }
+       if (merge_overlapping_monitors) {
+               m = mon_head;
+               while (m != NULL) {
+                       monitor_t *next = m->next;
+                       if (m->wired) {
+                               for (monitor_t *mb = mon_head; mb != NULL; mb = mb->next)
+                                       if (mb != m && mb->wired &&
+                                                       (m->desk == NULL || mb->desk == NULL) &&
+                                                       contains(mb->rectangle, m->rectangle)) {
+                                               if (mm == m)
+                                                       mm = mb;
+                                               merge_monitors(m, mb);
+                                               remove_monitor(m);
+                                               break;
+                                       }
+                       }
+                       m = next;
                }
-               m = next;
        }
 
        /* merge and remove disconnected monitors */
-       if (!persistent_monitors) {
+       if (remove_unplugged_monitors) {
                m = mon_head;
                while (m != NULL) {
                        monitor_t *next = m->next;