Merge pull request #33396 from AnturK/tooltip-fix

Fixes tooltip offsets
This commit is contained in:
Jordan Brown
2017-12-10 11:26:40 -05:00
committed by CitadelStationBot
parent e18457f92e
commit 96a2a7700d
2 changed files with 19 additions and 16 deletions

View File

@@ -41,21 +41,21 @@ Notes:
/datum/tooltip/New(client/C)
if (C)
src.owner = C
src.owner << browse(file2text('code/modules/tooltip/tooltip.html'), "window=[src.control]")
owner = C
owner << browse(file2text('code/modules/tooltip/tooltip.html'), "window=[control]")
..()
/datum/tooltip/proc/show(atom/movable/thing, params = null, title = null, content = null, theme = "default", special = "none")
if (!thing || !params || (!title && !content) || !src.owner || !isnum(world.icon_size))
if (!thing || !params || (!title && !content) || !owner || !isnum(world.icon_size))
return 0
if (!src.init)
if (!init)
//Initialize some vars
src.init = 1
src.owner << output(list2params(list(world.icon_size, src.control)), "[src.control]:tooltip.init")
init = 1
owner << output(list2params(list(world.icon_size, control)), "[control]:tooltip.init")
src.showing = 1
showing = 1
if (title && content)
title = "<h1>[title]</h1>"
@@ -73,18 +73,19 @@ Notes:
params = {"{ "cursor": "[params]", "screenLoc": "[thing.screen_loc]" }"}
//Send stuff to the tooltip
src.owner << output(list2params(list(params, src.owner.view, "[title][content]", theme, special)), "[src.control]:tooltip.update")
var/view_size = getviewsize(owner.view)
owner << output(list2params(list(params, view_size[1] , view_size[2], "[title][content]", theme, special)), "[control]:tooltip.update")
//If a hide() was hit while we were showing, run hide() again to avoid stuck tooltips
src.showing = 0
if (src.queueHide)
src.hide()
showing = 0
if (queueHide)
hide()
return 1
/datum/tooltip/proc/hide()
if (src.queueHide)
if (queueHide)
addtimer(CALLBACK(src, .proc/do_hide), 1)
else
do_hide()

View File

@@ -99,7 +99,8 @@
'tileSize': 32,
'control': '',
'params': {},
'clientView': 0,
'client_view_w': 0,
'client_view_h': 0,
'text': '',
'theme': '',
'padding': 2,
@@ -121,7 +122,7 @@
//Get the real icon size according to the client view
var mapWidth = map['view-size'].x,
mapHeight = map['view-size'].y,
tilesShown = (tooltip.clientView * 2) + 1,
tilesShown = tooltip.client_view_w
realIconSize = mapWidth / tilesShown,
resizeRatio = realIconSize / tooltip.tileSize,
//Calculate letterboxing offsets
@@ -230,10 +231,11 @@
tooltip.hide();
});
},
update: function(params, clientView, text, theme, special) {
update: function(params, client_vw , clien_vh , text, theme, special) {
//Assign our global object
tooltip.params = $.parseJSON(params);
tooltip.clientView = parseInt(clientView);
tooltip.client_view_w = parseInt(client_vw);
tooltip.client_view_h = parseInt(clien_vh);
tooltip.text = text;
tooltip.theme = theme;
tooltip.special = special;