]> Dogcows Code - chaz/openbox/commitdiff
rename 'xinerama' stuff to 'monitors' to be more generic and descriptive.
authorDana Jansens <danakj@orodu.net>
Thu, 10 Jul 2003 05:44:23 +0000 (05:44 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 10 Jul 2003 05:44:23 +0000 (05:44 +0000)
12 files changed:
openbox/client.c
openbox/client.h
openbox/event.c
openbox/extensions.c
openbox/focus.c
openbox/menu.c
openbox/moveresize.c
openbox/screen.c
openbox/screen.h
plugins/menu/client_menu.c
plugins/placement/placement.c
plugins/resistance/resistance.c

index 13b2e9c01ba382b37347f33576e719282d47e0ea..bdf9ed0d1439cf03c5e0f43ef855ed860d9648c7 100644 (file)
@@ -1613,8 +1613,8 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h,
         Rect *a;
         guint i;
 
-        i = client_xinerama_area(self);
-        a = screen_physical_area_xinerama(i);
+        i = client_monitor(self);
+        a = screen_physical_area_monitor(i);
 
 #ifdef VIDMODE
         if (i == 0 && /* primary head */
@@ -1640,7 +1640,7 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h,
     } else {
         Rect *a;
 
-        a = screen_area_xinerama(self->desktop, client_xinerama_area(self));
+        a = screen_area_monitor(self->desktop, client_monitor(self));
 
         /* set the size and position if maximized */
         if (self->max_horz) {
@@ -1845,7 +1845,7 @@ void client_fullscreen(Client *self, gboolean fs, gboolean savearea)
         Rect *a;
 
         /* pick some fallbacks... */
-        a = screen_area_xinerama(self->desktop, 0);
+        a = screen_area_monitor(self->desktop, 0);
         x = a->x + a->width / 4;
         y = a->y + a->height / 4;
         w = a->width / 2;
@@ -2004,7 +2004,7 @@ void client_maximize(Client *self, gboolean max, int dir, gboolean savearea)
         Rect *a;
 
         /* pick some fallbacks... */
-        a = screen_area_xinerama(self->desktop, 0);
+        a = screen_area_monitor(self->desktop, 0);
         if (dir == 0 || dir == 1) { /* horz */
             x = a->x + a->width / 4;
             w = a->width / 2;
@@ -2566,17 +2566,17 @@ void client_set_layer(Client *self, int layer)
     client_change_state(self); /* reflect this in the state hints */
 }
 
-guint client_xinerama_area(Client *self)
+guint client_monitor(Client *self)
 {
     guint i;
 
-    for (i = 0; i < screen_num_xin_areas; ++i) {
-        Rect *area = screen_physical_area_xinerama(i);
+    for (i = 0; i < screen_num_monitors; ++i) {
+        Rect *area = screen_physical_area_monitor(i);
         if (RECT_INTERSECTS_RECT(*area, self->frame->area))
             break;
     }
-    if (i == screen_num_xin_areas) i = 0;
-    g_assert(i < screen_num_xin_areas);
+    if (i == screen_num_monitors) i = 0;
+    g_assert(i < screen_num_monitors);
     return i;
 }
 
index bee3b5d7fbffcbdc8b341f39ce8c98c786880d23..ede9df66fa3e45dc9590bcabaed1df6f6afcb0a0 100644 (file)
@@ -508,6 +508,6 @@ Client *client_find_directional(Client *c, Direction dir);
 */
 void client_set_layer(Client *self, int layer);
 
-guint client_xinerama_area(Client *self);
+guint client_monitor(Client *self);
 
 #endif
index bb76f2fdc0331d5a2a385816b152fb4a43a296f2..6260e9125cd2b1d0d64c0c0d798c0edb4c6c1675 100644 (file)
@@ -595,9 +595,7 @@ static void event_handle_root(XEvent *e)
 #ifdef XRANDR
         XRRUpdateConfiguration(e);
 #endif
-        if (e->xconfigure.width != screen_physical_size.width ||
-            e->xconfigure.height != screen_physical_size.height)
-            screen_resize(e->xconfigure.width, e->xconfigure.height);
+        screen_resize();
         break;
     default:
         ;
index 73e610cb9f6c449004c8341a32543feecf8e6cd9..ec53e0a77262de89e8d00693c20a9682329b1012 100644 (file)
@@ -70,7 +70,8 @@ void extensions_xinerama_screens(Rect **xin_areas, guint *nxin)
         *nxin = 1;
         *xin_areas = g_new(Rect, *nxin + 1);
         RECT_SET((*xin_areas)[0], 0, 0,
-                 screen_physical_size.width, screen_physical_size.height);
+                 WidthOfScreen(ScreenOfDisplay(ob_display, ob_screen)),
+                 HeightOfScreen(ScreenOfDisplay(ob_display, ob_screen)));
     }
 
     /* returns one extra with the total area in it */
index 8b7eb29a20ca283b9cf9750b8297df806ab07dc5..12d30d27e8fffe46d1ab02e24ad1b5dd4e64e375 100644 (file)
@@ -250,7 +250,7 @@ static void popup_cycle(Client *c, gboolean show)
         Client *p = c;
         char *title;
 
-        a = screen_physical_area_xinerama(0);
+        a = screen_physical_area_monitor(0);
         popup_position(focus_cycle_popup, CenterGravity,
                        a->x + a->width / 2, a->y + a->height / 2);
 /*        popup_size(focus_cycle_popup, a->height/2, a->height/16);
index f7eef7fb08c3e4bcad316bf9fe88a89a79f190d1..23bb11289398aa830362b61547466c9d8c4a127a 100644 (file)
@@ -403,8 +403,8 @@ void menu_control_show(Menu *self, int x, int y, Client *client) {
 
     g_assert(!self->invalid);
     
-    for (i = 0; i < screen_num_xin_areas; ++i) {
-        a = screen_physical_area_xinerama(i);
+    for (i = 0; i < screen_num_monitors; ++i) {
+        a = screen_physical_area_monitor(i);
         if (RECT_CONTAINS(*a, x, y))
             break;
     }
@@ -449,7 +449,7 @@ void menu_control_mouseover(MenuEntry *self, gboolean enter) {
            /* need to get the width. is this bad?*/
            menu_render(self->submenu);
 
-            a = screen_physical_area_xinerama(self->parent->xin_area);
+            a = screen_physical_area_monitor(self->parent->xin_area);
 
            if (self->submenu->size.width + x >= a->x + a->width)
                x = self->parent->location.x - self->submenu->size.width - 
index 570283c43ab827f969f887e572bdf12b9fd9eeed..63de5c5bb4ccc252e924183392e0a2da63dc52d8 100644 (file)
@@ -82,7 +82,7 @@ static void popup_coords(char *format, int a, int b)
     Rect *area;
 
     text = g_strdup_printf(format, a, b);
-    area = screen_physical_area_xinerama(0);
+    area = screen_physical_area_monitor(0);
     popup_position(popup, NorthWestGravity,
                    POPUP_X + area->x, POPUP_Y + area->y);
     popup_show(popup, text, NULL);
index deb3d3fbc31d5278959b56ceaed407eb111e399f..75cc3c4c3cbe02887fa79c4db6e90f9edc9f4bae 100644 (file)
@@ -31,7 +31,7 @@
                        ButtonPressMask | ButtonReleaseMask | ButtonMotionMask)
 
 guint    screen_num_desktops    = 0;
-guint    screen_num_xin_areas   = 0;
+guint    screen_num_monitors    = 0;
 guint    screen_desktop         = 0;
 Size     screen_physical_size;
 gboolean screen_showing_desktop;
@@ -40,7 +40,7 @@ char   **screen_desktop_names = NULL;
 
 static Rect  **area = NULL; /* array of desktop holding array of
                                xinerama areas */
-static Rect  *xin_areas = NULL;
+static Rect  *monitor_area = NULL;
 static Window support_window = None;
 
 #ifdef USE_LIBSN
@@ -178,8 +178,7 @@ void screen_startup()
     guint i;
 
     /* get the initial size */
-    screen_resize(WidthOfScreen(ScreenOfDisplay(ob_display, ob_screen)),
-                  HeightOfScreen(ScreenOfDisplay(ob_display, ob_screen)));
+    screen_resize();
 
     /* set the names */
     screen_desktop_names = g_new(char*,
@@ -229,11 +228,20 @@ void screen_shutdown()
     g_free(area);
 }
 
-void screen_resize(int w, int h)
+void screen_resize()
 {
+    static int oldw = 0, oldh = 0;
+    int w, h;
     GList *it;
     guint32 geometry[2];
 
+    w = WidthOfScreen(ScreenOfDisplay(ob_display, ob_screen));
+    h = HeightOfScreen(ScreenOfDisplay(ob_display, ob_screen));
+
+    if (w == oldw && h == oldh) return;
+
+    oldw = w; oldh = h;
+
     /* Set the _NET_DESKTOP_GEOMETRY hint */
     screen_physical_size.width = geometry[0] = w;
     screen_physical_size.height = geometry[1] = h;
@@ -510,8 +518,8 @@ void screen_update_areas()
     Rect **rit;
     GList *it;
 
-    g_free(xin_areas);
-    extensions_xinerama_screens(&xin_areas, &screen_num_xin_areas);
+    g_free(monitor_area);
+    extensions_xinerama_screens(&monitor_area, &screen_num_monitors);
 
     if (area) {
         for (i = 0; area[i]; ++i)
@@ -521,7 +529,7 @@ void screen_update_areas()
 
     area = g_new(Rect*, screen_num_desktops + 2);
     for (i = 0; i < screen_num_desktops + 1; ++i)
-        area[i] = g_new(Rect, screen_num_xin_areas + 1);
+        area[i] = g_new(Rect, screen_num_monitors + 1);
     area[i] = NULL;
      
     dims = g_new(guint32, 4 * screen_num_desktops);
@@ -532,18 +540,18 @@ void screen_update_areas()
         int l, r, t, b;
 
         /* calc the xinerama areas */
-        for (x = 0; x < screen_num_xin_areas; ++x) {
-            area[i][x] = xin_areas[x];
+        for (x = 0; x < screen_num_monitors; ++x) {
+            area[i][x] = monitor_area[x];
             if (x == 0) {
-                l = xin_areas[x].x;
-                t = xin_areas[x].y;
-                r = xin_areas[x].x + xin_areas[x].width - 1;
-                b = xin_areas[x].y + xin_areas[x].height - 1;
+                l = monitor_area[x].x;
+                t = monitor_area[x].y;
+                r = monitor_area[x].x + monitor_area[x].width - 1;
+                b = monitor_area[x].y + monitor_area[x].height - 1;
             } else {
-                l = MIN(l, xin_areas[x].x);
-                t = MIN(t, xin_areas[x].y);
-                r = MAX(r, xin_areas[x].x + xin_areas[x].width - 1);
-                b = MAX(b, xin_areas[x].y + xin_areas[x].height - 1);
+                l = MIN(l, monitor_area[x].x);
+                t = MIN(t, monitor_area[x].y);
+                r = MAX(r, monitor_area[x].x + monitor_area[x].width - 1);
+                b = MAX(b, monitor_area[x].y + monitor_area[x].height - 1);
             }
         }
         RECT_SET(area[i][x], l, t, r - l + 1, b - t + 1);
@@ -559,10 +567,10 @@ void screen_update_areas()
 
             /* find the left-most xin heads, i do this in 2 loops :| */
             o = area[i][0].x;
-            for (x = 1; x < screen_num_xin_areas; ++x)
+            for (x = 1; x < screen_num_monitors; ++x)
                 o = MIN(o, area[i][x].x);
 
-            for (x = 0; x < screen_num_xin_areas; ++x) {
+            for (x = 0; x < screen_num_monitors; ++x) {
                 int edge = o + s.left - area[i][x].x;
                 if (edge > 0) {
                     area[i][x].x += edge;
@@ -570,18 +578,18 @@ void screen_update_areas()
                 }
             }
 
-            area[i][screen_num_xin_areas].x += s.left;
-            area[i][screen_num_xin_areas].width -= s.left;
+            area[i][screen_num_monitors].x += s.left;
+            area[i][screen_num_monitors].width -= s.left;
         }
         if (s.top) {
             int o;
 
             /* find the left-most xin heads, i do this in 2 loops :| */
             o = area[i][0].y;
-            for (x = 1; x < screen_num_xin_areas; ++x)
+            for (x = 1; x < screen_num_monitors; ++x)
                 o = MIN(o, area[i][x].y);
 
-            for (x = 0; x < screen_num_xin_areas; ++x) {
+            for (x = 0; x < screen_num_monitors; ++x) {
                 int edge = o + s.top - area[i][x].y;
                 if (edge > 0) {
                     area[i][x].y += edge;
@@ -589,47 +597,47 @@ void screen_update_areas()
                 }
             }
 
-            area[i][screen_num_xin_areas].y += s.top;
-            area[i][screen_num_xin_areas].height -= s.top;
+            area[i][screen_num_monitors].y += s.top;
+            area[i][screen_num_monitors].height -= s.top;
         }
         if (s.right) {
             int o;
 
             /* find the bottom-most xin heads, i do this in 2 loops :| */
             o = area[i][0].x + area[i][0].width - 1;
-            for (x = 1; x < screen_num_xin_areas; ++x)
+            for (x = 1; x < screen_num_monitors; ++x)
                 o = MAX(o, area[i][x].x + area[i][x].width - 1);
 
-            for (x = 0; x < screen_num_xin_areas; ++x) {
+            for (x = 0; x < screen_num_monitors; ++x) {
                 int edge = (area[i][x].x + area[i][x].width - 1) -
                     (o - s.right);
                 if (edge > 0)
                     area[i][x].width -= edge;
             }
 
-            area[i][screen_num_xin_areas].width -= s.right;
+            area[i][screen_num_monitors].width -= s.right;
         }
         if (s.bottom) {
             int o;
 
             /* find the bottom-most xin heads, i do this in 2 loops :| */
             o = area[i][0].y + area[i][0].height - 1;
-            for (x = 1; x < screen_num_xin_areas; ++x)
+            for (x = 1; x < screen_num_monitors; ++x)
                 o = MAX(o, area[i][x].y + area[i][x].height - 1);
 
-            for (x = 0; x < screen_num_xin_areas; ++x) {
+            for (x = 0; x < screen_num_monitors; ++x) {
                 int edge = (area[i][x].y + area[i][x].height - 1) -
                     (o - s.bottom);
                 if (edge > 0)
                     area[i][x].height -= edge;
             }
 
-            area[i][screen_num_xin_areas].height -= s.bottom;
+            area[i][screen_num_monitors].height -= s.bottom;
         }
 
         /* XXX when dealing with partial struts, if its in a single
            xinerama area, then only subtract it from that area's space
-        for (x = 0; x < screen_num_xin_areas; ++x) {
+        for (x = 0; x < screen_num_monitors; ++x) {
            GList *it;
 
 
@@ -662,10 +670,10 @@ void screen_update_areas()
         }
         if (i < screen_num_desktops) {
             /* don't set these for the 'all desktops' area */
-            dims[(i * 4) + 0] = area[i][screen_num_xin_areas].x;
-            dims[(i * 4) + 1] = area[i][screen_num_xin_areas].y;
-            dims[(i * 4) + 2] = area[i][screen_num_xin_areas].width;
-            dims[(i * 4) + 3] = area[i][screen_num_xin_areas].height;
+            dims[(i * 4) + 0] = area[i][screen_num_monitors].x;
+            dims[(i * 4) + 1] = area[i][screen_num_monitors].y;
+            dims[(i * 4) + 2] = area[i][screen_num_monitors].width;
+            dims[(i * 4) + 3] = area[i][screen_num_monitors].height;
         }
     }
     PROP_SETA32(ob_root, net_workarea, cardinal,
@@ -676,12 +684,12 @@ void screen_update_areas()
 
 Rect *screen_area(guint desktop)
 {
-    return screen_area_xinerama(desktop, screen_num_xin_areas);
+    return screen_area_monitor(desktop, screen_num_monitors);
 }
 
-Rect *screen_area_xinerama(guint desktop, guint head)
+Rect *screen_area_monitor(guint desktop, guint head)
 {
-    if (head > screen_num_xin_areas)
+    if (head > screen_num_monitors)
         return NULL;
     if (desktop >= screen_num_desktops) {
        if (desktop == DESKTOP_ALL)
@@ -693,14 +701,14 @@ Rect *screen_area_xinerama(guint desktop, guint head)
 
 Rect *screen_physical_area()
 {
-    return screen_physical_area_xinerama(screen_num_xin_areas);
+    return screen_physical_area_monitor(screen_num_monitors);
 }
 
-Rect *screen_physical_area_xinerama(guint head)
+Rect *screen_physical_area_monitor(guint head)
 {
-    if (head > screen_num_xin_areas)
+    if (head > screen_num_monitors)
         return NULL;
-    return &xin_areas[head];
+    return &monitor_area[head];
 }
 
 static void set_root_cursor()
index 21d05e474534dee9f4742c6486c9793e26d9a6d9..42e3dc17f22766d8876f5b0c213268080768e27a 100644 (file)
@@ -11,11 +11,9 @@ struct Client;
 /*! The number of available desktops */
 extern guint screen_num_desktops;
 /*! The number of virtual "xinerama" screens/heads */
-extern guint screen_num_xin_areas;
+extern guint screen_num_monitors;
 /*! The current desktop */
 extern guint screen_desktop;
-/*! The size of the screen */
-extern Size  screen_physical_size;
 /*! Are we in showing-desktop mode? */
 extern gboolean screen_showing_desktop;
 
@@ -45,7 +43,7 @@ void screen_startup();
 void screen_shutdown();
 
 /*! Figure out the new size of the screen and adjust stuff for it */
-void screen_resize(int w, int h);
+void screen_resize();
 
 /*! Change the number of available desktops */
 void screen_set_num_desktops(guint num);
@@ -70,10 +68,10 @@ void screen_update_areas();
 
 Rect *screen_physical_area();
 
-Rect *screen_physical_area_xinerama(guint head);
+Rect *screen_physical_area_monitor(guint head);
 
 Rect *screen_area(guint desktop);
 
-Rect *screen_area_xinerama(guint desktop, guint head);
+Rect *screen_area_monitor(guint desktop, guint head);
 
 #endif
index 67c17acd2c73088f32fa740075f87a61644898fa..acb33cd59e2f4efdd9ab5005d08c91b6525496e3 100644 (file)
@@ -56,6 +56,7 @@ void client_send_to_update(Menu *self)
     }
 }
 
+#if 0
 void client_menu_show(Menu *self, int x, int y, Client *client)
 {
     int newy;
@@ -82,6 +83,7 @@ void client_menu_show(Menu *self, int x, int y, Client *client)
        menu_hide(self->open_submenu);
     }
 }
+#endif
 
 void plugin_setup_config() { }
 
index 5f962e47c2bf74823994a9799f5217d16aa5c587..589e0a304c9ee737387cd289813326803f1e8df1 100644 (file)
@@ -32,8 +32,8 @@ static void place_random(Client *c)
 
     if (ob_state == State_Starting) return;
 
-    area = screen_area_xinerama(c->desktop,
-                                g_random_int_range(0, screen_num_xin_areas));
+    area = screen_area_monitor(c->desktop,
+                               g_random_int_range(0, screen_num_monitors));
 
     l = area->x;
     t = area->y;
index aa60b2b1bd005319d9edfb61655aedbbffa82dc4..318447527ef0500fe2888e8f5c90a4cc4f03c888 100644 (file)
@@ -108,8 +108,8 @@ static void resist_move(Client *c, int *x, int *y)
         }
 
     /* get the screen boundaries */
-    for (i = 0; i < screen_num_xin_areas; ++i) {
-        area = screen_area_xinerama(c->desktop, i);
+    for (i = 0; i < screen_num_monitors; ++i) {
+        area = screen_area_monitor(c->desktop, i);
 
         if (!RECT_INTERSECTS_RECT(*area, c->frame->area))
             continue;
This page took 0.05599 seconds and 4 git commands to generate.