diff --git a/spec/space-pen-extensions-spec.coffee b/spec/space-pen-extensions-spec.coffee index 54a64873e..28849c72c 100644 --- a/spec/space-pen-extensions-spec.coffee +++ b/spec/space-pen-extensions-spec.coffee @@ -65,3 +65,19 @@ describe "SpacePen extensions", -> it "replaces multiple keystroke", -> expect(humanizeKeystrokes('cmd-o ctrl-2')).toEqual '⌘O ⌃2' + + describe "when the window is resized", -> + it "hides the tooltips", -> + class TooltipView extends View + @content: -> + @div() + + view = new TooltipView() + view.attachToDom() + view.setTooltip('this is a tip') + + view.tooltip('show') + expect($(document.body).find('.tooltip')).toBeVisible() + + $(window).trigger('resize') + expect($(document.body).find('.tooltip')).not.toExist() diff --git a/src/space-pen-extensions.coffee b/src/space-pen-extensions.coffee index b8a1f6399..c048d803a 100644 --- a/src/space-pen-extensions.coffee +++ b/src/space-pen-extensions.coffee @@ -59,6 +59,13 @@ jQuery.fn.destroyTooltip = -> @hideTooltip() @tooltip('destroy') +# Hide tooltips when window is resized +jQuery(document.body).on 'show.bs.tooltip', ({target}) -> + windowHandler = -> jQuery(target).hideTooltip() + jQuery(window).one('resize', windowHandler) + jQuery(target).one 'hide.bs.tooltip', -> + jQuery(window).off('resize', windowHandler) + jQuery.fn.setTooltip.getKeystroke = getKeystroke jQuery.fn.setTooltip.humanizeKeystrokes = humanizeKeystrokes