diff --git a/src/actions.c b/src/actions.c index 4b336c94..13dffec6 100644 --- a/src/actions.c +++ b/src/actions.c @@ -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); diff --git a/src/xinerama.c b/src/xinerama.c index 92944b12..e1e47ee5 100644 --- a/src/xinerama.c +++ b/src/xinerama.c @@ -26,6 +26,7 @@ #include "window.h" #include "framewin.h" #include "placement.h" +#include "dock.h" #ifdef USE_XINERAMA # ifdef SOLARIS_XINERAMA /* sucks */ @@ -303,6 +304,29 @@ WArea wGetUsableAreaForHead(WScreen * scr, int head, WArea * totalAreaPtr, Bool } else usableArea = totalArea; + if (noicons) { + /* 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; + } + } + return usableArea; }