Dynamically setting Widget position

I’m having a lot of trouble setting the position of UI elements at runtime, and I feel things are more complicated than they should be. I’m trying to implement a custom tooltip system (because unreal’s current system does not work for what I need), so what I’m trying to do is:

A. When I hover a “tooltipable” UI element, it gets the position of that element
B. That information is sent to the PlayerController, that applies an offset
C. The PC has a reference to a “TooltipWidget” that is hidden; it shows the widget and set it’s position to the hovered element + offset.

Parts A. and C. are really hard though. I’ve tried many different ways. The only way that I was able to get it right does not work for multiple resolutions:

Tooltip Data has the Offset info. After that, PlayerController sends the info to TooltipWidget:

Like I said, this works for fullscreen but not for any other window size.
Is there an easier way to get and set positions? There are also many different coordinates system, it’s always very confusing.

Slate has tooltip widget support that UMG uses. There “Tooltip Widget” property which allows you bind the widget as a tooltip of a widget. If it’s not enough for you, don’t be suppriced that “things are harder as it should” as you trying to make your own thing (and i’m not saying it’s bad thing ) and you going level down where system gives you free hand and assumes you know what you doing.

As for things you trying to do, instead of viewport absolute position you should use position relative to widgets that you have. The thing does not work because you setting widget canvas position with viewport position and canvas don’t need to align, you need to offset it with position of canvas itself in viewport.