X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fdock.c;h=d8ca062d489a5cf92c0d4677a5fdacf5864410cb;hb=8c05970840ed3a7c7ecc4a63f8f226791b495326;hp=2e191f1c5a883c5f5273f326c6f28dfc1ac45757;hpb=3595da62ca70f494f3341af744da627af414cb18;p=chaz%2Fopenbox diff --git a/openbox/dock.c b/openbox/dock.c index 2e191f1c..d8ca062d 100644 --- a/openbox/dock.c +++ b/openbox/dock.c @@ -57,11 +57,11 @@ void dock_startup(gboolean reconfig) GList *it; XSetWindowBorder(ob_display, dock->frame, - RrColorPixel(ob_rr_theme->frame_b_color)); - XSetWindowBorderWidth(ob_display, dock->frame, ob_rr_theme->fbwidth); + RrColorPixel(ob_rr_theme->osd_border_color)); + XSetWindowBorderWidth(ob_display, dock->frame, ob_rr_theme->obwidth); RrAppearanceFree(dock->a_frame); - dock->a_frame = RrAppearanceCopy(ob_rr_theme->a_focused_title); + dock->a_frame = RrAppearanceCopy(ob_rr_theme->osd_hilite_bg); stacking_add(DOCK_AS_WINDOW(dock)); @@ -89,10 +89,14 @@ void dock_startup(gboolean reconfig) RrVisual(ob_rr_inst), CWOverrideRedirect | CWEventMask, &attrib); - dock->a_frame = RrAppearanceCopy(ob_rr_theme->a_focused_title); + dock->a_frame = RrAppearanceCopy(ob_rr_theme->osd_hilite_bg); XSetWindowBorder(ob_display, dock->frame, - RrColorPixel(ob_rr_theme->frame_b_color)); - XSetWindowBorderWidth(ob_display, dock->frame, ob_rr_theme->fbwidth); + RrColorPixel(ob_rr_theme->osd_border_color)); + XSetWindowBorderWidth(ob_display, dock->frame, ob_rr_theme->obwidth); + + /* Setting the window type so xcompmgr can tell what it is */ + PROP_SET32(dock->frame, net_wm_window_type, atom, + prop_atoms.net_wm_window_type_dock); g_hash_table_insert(window_map, &dock->frame, dock); stacking_add(DOCK_AS_WINDOW(dock)); @@ -214,13 +218,13 @@ void dock_remove(ObDockApp *app, gboolean reparent) void dock_configure() { GList *it; - gint spot; + gint hspot, vspot; gint gravity; - gint minw, minh; + gint l, r, t, b; gint strw, strh; Rect *a; - RrMinsize(dock->a_frame, &minw, &minh); + RrMargins(dock->a_frame, &l, &t, &r, &b); dock->w = dock->h = 0; @@ -239,21 +243,25 @@ void dock_configure() } } - spot = (config_dock_orient == OB_ORIENTATION_HORZ ? minw : minh) / 2; + dock->w += l + r; + dock->h += t + b; + + hspot = l; + vspot = t; /* position the apps */ for (it = dock->dock_apps; it; it = g_list_next(it)) { ObDockApp *app = it->data; switch (config_dock_orient) { case OB_ORIENTATION_HORZ: - app->x = spot; + app->x = hspot; app->y = (dock->h - app->h) / 2; - spot += app->w; + hspot += app->w; break; case OB_ORIENTATION_VERT: app->x = (dock->w - app->w) / 2; - app->y = spot; - spot += app->h; + app->y = vspot; + vspot += app->h; break; } @@ -261,8 +269,8 @@ void dock_configure() } /* used for calculating offsets */ - dock->w += ob_rr_theme->fbwidth * 2; - dock->h += ob_rr_theme->fbwidth * 2; + dock->w += ob_rr_theme->obwidth * 2; + dock->h += ob_rr_theme->obwidth * 2; a = screen_physical_area(); @@ -349,51 +357,51 @@ void dock_configure() case OB_DIRECTION_NORTHWEST: switch (config_dock_orient) { case OB_ORIENTATION_HORZ: - dock->y -= dock->h - ob_rr_theme->fbwidth; + dock->y -= dock->h - ob_rr_theme->obwidth; break; case OB_ORIENTATION_VERT: - dock->x -= dock->w - ob_rr_theme->fbwidth; + dock->x -= dock->w - ob_rr_theme->obwidth; break; } break; case OB_DIRECTION_NORTH: - dock->y -= dock->h - ob_rr_theme->fbwidth; + dock->y -= dock->h - ob_rr_theme->obwidth; break; case OB_DIRECTION_NORTHEAST: switch (config_dock_orient) { case OB_ORIENTATION_HORZ: - dock->y -= dock->h - ob_rr_theme->fbwidth; + dock->y -= dock->h - ob_rr_theme->obwidth; break; case OB_ORIENTATION_VERT: - dock->x += dock->w - ob_rr_theme->fbwidth; + dock->x += dock->w - ob_rr_theme->obwidth; break; } break; case OB_DIRECTION_WEST: - dock->x -= dock->w - ob_rr_theme->fbwidth; + dock->x -= dock->w - ob_rr_theme->obwidth; break; case OB_DIRECTION_EAST: - dock->x += dock->w - ob_rr_theme->fbwidth; + dock->x += dock->w - ob_rr_theme->obwidth; break; case OB_DIRECTION_SOUTHWEST: switch (config_dock_orient) { case OB_ORIENTATION_HORZ: - dock->y += dock->h - ob_rr_theme->fbwidth; + dock->y += dock->h - ob_rr_theme->obwidth; break; case OB_ORIENTATION_VERT: - dock->x -= dock->w - ob_rr_theme->fbwidth; + dock->x -= dock->w - ob_rr_theme->obwidth; break; } break; case OB_DIRECTION_SOUTH: - dock->y += dock->h - ob_rr_theme->fbwidth; + dock->y += dock->h - ob_rr_theme->obwidth; break; case OB_DIRECTION_SOUTHEAST: switch (config_dock_orient) { case OB_ORIENTATION_HORZ: - dock->y += dock->h - ob_rr_theme->fbwidth; + dock->y += dock->h - ob_rr_theme->obwidth; break; case OB_ORIENTATION_VERT: - dock->x += dock->w - ob_rr_theme->fbwidth; + dock->x += dock->w - ob_rr_theme->obwidth; break; } break; @@ -402,8 +410,8 @@ void dock_configure() } if (!config_dock_floating && config_dock_hide) { - strw = ob_rr_theme->fbwidth; - strh = ob_rr_theme->fbwidth; + strw = ob_rr_theme->obwidth; + strh = ob_rr_theme->obwidth; } else { strw = dock->w; strh = dock->h; @@ -413,7 +421,8 @@ void dock_configure() if (!dock->dock_apps) { STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - } else if (config_dock_floating || config_dock_nostrut) { + } else if (config_dock_floating || config_dock_nostrut) + { STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } else { @@ -434,8 +443,8 @@ void dock_configure() break; case OB_DIRECTION_NORTH: STRUT_PARTIAL_SET(dock_strut, 0, strh, 0, 0, - dock->x, dock->x + dock->w - 1, - 0, 0, 0, 0, 0, 0); + 0, 0, dock->x, dock->x + dock->w - 1, + 0, 0, 0, 0); break; case OB_DIRECTION_NORTHEAST: switch (config_dock_orient) { @@ -497,12 +506,9 @@ void dock_configure() } } - dock->w += minw; - dock->h += minh; - /* not used for actually sizing shit */ - dock->w -= ob_rr_theme->fbwidth * 2; - dock->h -= ob_rr_theme->fbwidth * 2; + dock->w -= ob_rr_theme->obwidth * 2; + dock->h -= ob_rr_theme->obwidth * 2; if (dock->dock_apps) { g_assert(dock->w > 0); @@ -517,10 +523,12 @@ void dock_configure() XUnmapWindow(ob_display, dock->frame); /* but they are useful outside of this function! */ - dock->w += ob_rr_theme->fbwidth * 2; - dock->h += ob_rr_theme->fbwidth * 2; + dock->w += ob_rr_theme->obwidth * 2; + dock->h += ob_rr_theme->obwidth * 2; screen_update_areas(); + + g_free(a); } void dock_app_configure(ObDockApp *app, gint w, gint h)