# Add config setting so as to force tooltip left or right of point

I would like to be able to configure a non-shared tooltip so that the tooltip only appears to the left or right of the point. I was able to modify the highcharts code for a custom positioner, by forcing it to swap() at the end of the routine.

[code]

`tooltipPositioner = function (labelWidth, labelHeight, point) {`

var chart = this.chart,

distance = this.distance,

ret = {},

swapped,

first = ['y', chart.chartHeight, labelHeight, point.plotY + chart.plotTop],

second = ['x', chart.chartWidth, labelWidth, point.plotX + chart.plotLeft],

// The far side is right or bottom

preferFarSide = point.ttBelow || (chart.inverted && !point.negative) || (!chart.inverted && point.negative),

/**

* Handle the preferred dimension. When the preferred dimension is tooltip

* on top or bottom of the point, it will look for space there.

*/

firstDimension = function (dim, outerSize, innerSize, point) {

var roomLeft = innerSize < point - distance,

roomRight = point + distance + innerSize < outerSize,

alignedLeft = point - distance - innerSize,

alignedRight = point + distance;if (preferFarSide && roomRight) {

ret[dim] = alignedRight;

} else if (!preferFarSide && roomLeft) {

ret[dim] = alignedLeft;

} else if (roomLeft) {

ret[dim] = alignedLeft;

} else if (roomRight) {

ret[dim] = alignedRight;

} else {

return false;

}

},

/**

* Handle the secondary dimension. If the preferred dimension is tooltip

* on top or bottom of the point, the second dimension is to align the tooltip

* above the point, trying to align center but allowing left or right

* align within the chart box.

*/

secondDimension = function (dim, outerSize, innerSize, point) {

// Too close to the edge, return false and swap dimensions

if (point < distance || point > outerSize - distance) {

return false;// Align left/top

} else if (point < innerSize / 2) {

ret[dim] = 1;

// Align right/bottom

} else if (point > outerSize - innerSize / 2) {

ret[dim] = outerSize - innerSize - 2;

// Align center

} else {

ret[dim] = point - innerSize / 2;

}

},

/**

* Swap the dimensions

*/

swap = function (count) {

var temp = first;

first = second;

second = temp;

swapped = count;

},

run = function () {

if (firstDimension.apply(0, first) !== false) {

if (secondDimension.apply(0, second) === false && !swapped) {

swap(true);

run();

}

} else if (!swapped) {

swap(true);

run();

} else {

ret.x = ret.y = 0;

}

};

`// Under these conditions, prefer the tooltip on the side of the point`

// if (chart.inverted || this.len > 1) { force it to swap()

```
swap();
```

// }

`run();`

return ret;

`};`

[/code]

**0**votes

This can be done through the tooltip.positioner plugin.