member set the root window, and one set to the client, but both get
handled and need to be ignored.
*/
- if (ob_state == State_Starting)
+ if (ob_state == OB_STATE_STARTING)
app->ignore_unmaps += 2;
if (app->win != app->icon_win) {
grab_button_full(2, 0, app->icon_win,
ButtonPressMask | ButtonReleaseMask | ButtonMotionMask,
- GrabModeAsync, ob_cursors.move);
+ GrabModeAsync, OB_CURSOR_MOVE);
g_hash_table_insert(window_map, &app->icon_win, app);
int spot;
int gravity;
int minw, minh;
+ int strw, strh;
+ Rect *a;
RrMinsize(dock->a_frame, &minw, &minh);
dock->w += ob_rr_theme->bwidth * 2;
dock->h += ob_rr_theme->bwidth * 2;
+ a = screen_physical_area();
+
/* calculate position */
switch (config_dock_pos) {
case DockPos_Floating:
gravity = NorthWestGravity;
break;
case DockPos_Top:
- dock->x = screen_physical_size.width / 2;
+ dock->x = a->width / 2;
dock->y = 0;
gravity = NorthGravity;
break;
case DockPos_TopRight:
- dock->x = screen_physical_size.width;
+ dock->x = a->width;
dock->y = 0;
gravity = NorthEastGravity;
break;
case DockPos_Left:
dock->x = 0;
- dock->y = screen_physical_size.height / 2;
+ dock->y = a->height / 2;
gravity = WestGravity;
break;
case DockPos_Right:
- dock->x = screen_physical_size.width;
- dock->y = screen_physical_size.height / 2;
+ dock->x = a->width;
+ dock->y = a->height / 2;
gravity = EastGravity;
break;
case DockPos_BottomLeft:
dock->x = 0;
- dock->y = screen_physical_size.height;
+ dock->y = a->height;
gravity = SouthWestGravity;
break;
case DockPos_Bottom:
- dock->x = screen_physical_size.width / 2;
- dock->y = screen_physical_size.height;
+ dock->x = a->width / 2;
+ dock->y = a->height;
gravity = SouthGravity;
break;
case DockPos_BottomRight:
- dock->x = screen_physical_size.width;
- dock->y = screen_physical_size.height;
+ dock->x = a->width;
+ dock->y = a->height;
gravity = SouthEastGravity;
break;
}
}
}
+ if (config_dock_pos != DockPos_Floating && config_dock_hide) {
+ strw = strh = ob_rr_theme->bwidth;
+ } else {
+ strw = dock->w;
+ strh = dock->h;
+ }
+
/* set the strut */
switch (config_dock_pos) {
case DockPos_Floating:
break;
case DockPos_TopLeft:
if (config_dock_horz)
- STRUT_SET(dock_strut, 0, dock->h, 0, 0);
+ STRUT_SET(dock_strut, 0, strh, 0, 0);
else
- STRUT_SET(dock_strut, dock->w, 0, 0, 0);
+ STRUT_SET(dock_strut, strw, 0, 0, 0);
break;
case DockPos_Top:
- STRUT_SET(dock_strut, 0, dock->h, 0, 0);
+ STRUT_SET(dock_strut, 0, strh, 0, 0);
break;
case DockPos_TopRight:
if (config_dock_horz)
- STRUT_SET(dock_strut, 0, dock->h, 0, 0);
+ STRUT_SET(dock_strut, 0, strh, 0, 0);
else
- STRUT_SET(dock_strut, 0, 0, dock->w, 0);
+ STRUT_SET(dock_strut, 0, 0, strw, 0);
break;
case DockPos_Left:
- STRUT_SET(dock_strut, dock->w, 0, 0, 0);
+ STRUT_SET(dock_strut, strw, 0, 0, 0);
break;
case DockPos_Right:
- STRUT_SET(dock_strut, 0, 0, dock->w, 0);
+ STRUT_SET(dock_strut, 0, 0, strw, 0);
break;
case DockPos_BottomLeft:
if (config_dock_horz)
- STRUT_SET(dock_strut, 0, 0, 0, dock->h);
+ STRUT_SET(dock_strut, 0, 0, 0, strh);
else
- STRUT_SET(dock_strut, dock->w, 0, 0, 0);
+ STRUT_SET(dock_strut, strw, 0, 0, 0);
break;
case DockPos_Bottom:
- STRUT_SET(dock_strut, 0, 0, 0, dock->h);
+ STRUT_SET(dock_strut, 0, 0, 0, strh);
break;
case DockPos_BottomRight:
if (config_dock_horz)
- STRUT_SET(dock_strut, 0, 0, 0, dock->h);
+ STRUT_SET(dock_strut, 0, 0, 0, strh);
else
- STRUT_SET(dock_strut, 0, 0, dock->w, 0);
+ STRUT_SET(dock_strut, 0, 0, strw, 0);
break;
}
dock->w += ob_rr_theme->bwidth * 2;
dock->h += ob_rr_theme->bwidth * 2;
- screen_update_struts();
+ screen_update_areas();
}
void dock_app_configure(DockApp *app, int w, int h)