mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 12:58:08 +01:00
move dock/icons size adjustments, to fix window placement
Functions placing windows (PlaceWindow - src/placement.c, wMaximizeWindow - src/actions.c) need to calculate area differently than ones placing icons (PlaceIcon - src/placement.c, wArrangeIcons - src/actions.c). So this patch puts adjustment code in wGetUsableAreaForHead which is used by all those functions but called with different 'bool noicons' argument depending on if it's called in window or icon placement function. Reported-by: Carlos R. Mafra <crmafra@gmail.com> Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
This commit is contained in:
committed by
Carlos R. Mafra
parent
895a6e97e1
commit
0faff93cf7
@@ -387,26 +387,6 @@ void wMaximizeWindow(WWindow *wwin, int directions)
|
||||
usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True);
|
||||
}
|
||||
|
||||
/* check if user wants dock covered */
|
||||
if (scr->dock && (!scr->dock->lowered || wPreferences.no_window_over_dock)) {
|
||||
int offset = wPreferences.icon_size + DOCK_EXTRA_SPACE;
|
||||
|
||||
if (scr->dock->on_right_side)
|
||||
usableArea.x2 -= offset;
|
||||
else
|
||||
usableArea.x1 += offset;
|
||||
}
|
||||
|
||||
/* check if icons are on the same side as dock, and adjust if not done already */
|
||||
if (scr->dock && wPreferences.no_window_over_icons && !wPreferences.no_window_over_dock && (wPreferences.icon_yard & IY_VERT)) {
|
||||
int offset = wPreferences.icon_size + DOCK_EXTRA_SPACE;
|
||||
|
||||
if (scr->dock->on_right_side && (wPreferences.icon_yard & IY_RIGHT))
|
||||
usableArea.x2 -= offset;
|
||||
/* can't use IY_LEFT in if, it's 0 ... */
|
||||
if (!scr->dock->on_right_side && !(wPreferences.icon_yard & IY_RIGHT))
|
||||
usableArea.x1 += offset;
|
||||
}
|
||||
|
||||
/* Only save directions, not kbd or xinerama hints */
|
||||
directions &= (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS);
|
||||
|
||||
Reference in New Issue
Block a user