]> Dogcows Code - chaz/openbox/blobdiff - openbox/dock.c
fixed to accomodate the changes to the render/ API.
[chaz/openbox] / openbox / dock.c
index e17c8913b8e2f910bd6a75b553b92775bdf3ab63..3fb9c78d8914b9fc175e2ba815d8e965e83c12f9 100644 (file)
@@ -28,10 +28,11 @@ void dock_startup()
     attrib.event_mask = DOCK_EVENT_MASK;
     attrib.override_redirect = True;
     dock->frame = XCreateWindow(ob_display, ob_root, 0, 0, 1, 1, 0,
-                                render_depth, InputOutput, render_visual,
+                                RrDepth(ob_rr_inst), InputOutput,
+                                RrVisual(ob_rr_inst),
                                 CWOverrideRedirect | CWEventMask,
                                 &attrib);
-    dock->a_frame = appearance_copy(theme_a_unfocused_title);
+    dock->a_frame = RrAppearanceCopy(theme_a_unfocused_title);
     XSetWindowBorder(ob_display, dock->frame, theme_b_color->pixel);
     XSetWindowBorderWidth(ob_display, dock->frame, theme_bwidth);
 
@@ -43,7 +44,7 @@ void dock_startup()
 void dock_shutdown()
 {
     XDestroyWindow(ob_display, dock->frame);
-    appearance_free(dock->a_frame);
+    RrAppearanceFree(dock->a_frame);
     g_hash_table_remove(window_map, &dock->frame);
     stacking_remove(dock);
 }
@@ -152,19 +153,28 @@ void dock_configure()
 
     dock->w = dock->h = spot = 0;
 
+    /* get the size */
     for (it = dock->dock_apps; it; it = it->next) {
         struct DockApp *app = it->data;
         if (config_dock_horz) {
-            app->x = spot;
-            app->y = 0;
             dock->w += app->w;
             dock->h = MAX(dock->h, app->h);
-            spot += app->w;
         } else {
-            app->x = 0;
-            app->y = spot;
             dock->w = MAX(dock->w, app->w);
             dock->h += app->h;
+        }
+    }
+
+    /* position the apps */
+    for (it = dock->dock_apps; it; it = it->next) {
+        struct DockApp *app = it->data;
+        if (config_dock_horz) {
+            app->x = spot;
+            app->y = (dock->h - app->h) / 2;
+            spot += app->w;
+        } else {
+            app->x = (dock->w - app->w) / 2;
+            app->y = spot;
             spot += app->h;
         }
 
@@ -340,11 +350,10 @@ void dock_configure()
     dock->h -= theme_bwidth * 2;
 
     if (dock->w > 0 && dock->h > 0) {
-        RECT_SET(dock->a_frame->area, 0, 0, dock->w, dock->h);
         XMoveResizeWindow(ob_display, dock->frame,
                           dock->x, dock->y, dock->w, dock->h);
 
-        paint(dock->frame, dock->a_frame);
+        RrPaint(dock->a_frame, dock->frame, dock->w, dock->h);
         XMapWindow(ob_display, dock->frame);
     } else
         XUnmapWindow(ob_display, dock->frame);
This page took 0.023363 seconds and 4 git commands to generate.