1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-18 12:00:31 +01:00

Add helper function for computing the dock's x position

Avoid code duplication since we'll need to make this computation in
several places.
This commit is contained in:
Torrance, Douglas
2023-01-18 11:42:57 +00:00
committed by Carlos R. Mafra
parent 55a816bdbc
commit 83f7fa43ce

View File

@@ -814,6 +814,29 @@ static void unhideHereCallback(WMenu *menu, WMenuEntry *entry)
wUnhideApplication(wapp, False, True);
}
static int getDockXPosition(WScreen *scr, Bool on_right_side)
{
int x;
if (wPreferences.keep_dock_on_primary_head) {
WMRect rect;
rect = wGetRectForHead(scr, scr->xine_info.primary_head);
x = rect.pos.x;
if (on_right_side)
x += rect.size.width - ICON_SIZE - DOCK_EXTRA_SPACE;
else
x += DOCK_EXTRA_SPACE;
} else {
if (on_right_side)
x = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE;
else
x = DOCK_EXTRA_SPACE;
}
return x;
}
/* Name is only used when type == WM_DRAWER and when restoring a specific
* drawer, with a specific name. When creating a drawer, leave name to NULL
* and mainIconCreate will find the first unused unique name */
@@ -3010,22 +3033,7 @@ static void swapDock(WDock *dock)
int x, i;
if (wPreferences.keep_dock_on_primary_head) {
WMRect rect;
rect = wGetRectForHead(scr, scr->xine_info.primary_head);
x = rect.pos.x;
if (dock->on_right_side)
x += rect.size.width - ICON_SIZE - DOCK_EXTRA_SPACE;
else
x += DOCK_EXTRA_SPACE;
} else {
if (dock->on_right_side)
x = scr->scr_width - ICON_SIZE - DOCK_EXTRA_SPACE;
else
x = DOCK_EXTRA_SPACE;
}
x = getDockXPosition(scr, dock->on_right_side);
swapDrawers(scr, x);
dock->x_pos = x;