rem: if (x < 1) x = 1; else if (x > (scr->scr_width - w - 3)) x = scr->scr_width - w - 3;  if (y < 1) y = 1; else if (y > (scr->scr_height - h - 3)) y = scr->scr_height - h - 3;
add: if (scr->xine_count) { WMRect rect; int head, flags;  rect.pos.x = x; rect.pos.y = y; rect.size.width = w; rect.size.height = h;  head = wGetRectPlacementInfo(scr, rect, &flags);  if (flags & (XFLAG_DEAD | XFLAG_PARTIAL)) { rect = wGetRectForHead(scr, head); x1 = rect.pos.x; y1 = rect.pos.y; x2 = x1 + rect.size.width; y2 = y1 + rect.size.height; } }  if (x < x1 + 1) x = x1 + 1; else if (x > (x2 - w)) x = x2 - w;  if (y < y1 + 1) y = y1 + 1; else if (y > (y2 - h)) y = y2 - h;
context: moveGeometryDisplayCentered(WScreen *scr, int x, int y){    unsigned int w = WMWidgetWidth(scr->gview);    unsigned int h = WMWidgetHeight(scr->gview);    x -= w / 2;    y -= h / 2;    if (x < 1)        x = 1;    else if (x > (scr->scr_width - w - 3))        x = scr->scr_width - w - 3;    if (y < 1)        y = 1;    else if (y > (scr->scr_height - h - 3))        y = scr->scr_height - h - 3;    WMMoveWidget(scr->gview, x, y);}