From 909e8dc4d95cd4bae089f50d84073f7419aff350 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 25 Jun 2012 13:00:22 +0200 Subject: [PATCH] Fix Menu position on Firefox. --- 4chan_x.user.js | 7 ++++--- script.coffee | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index c0f4be73f..488373617 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -1101,7 +1101,7 @@ return $.on(a, 'click', Menu.toggle); }, toggle: function(e) { - var lastOpener, s; + var lastOpener, rect, s; e.preventDefault(); e.stopPropagation(); if (Menu.el.parentNode) { @@ -1112,8 +1112,9 @@ } } s = Menu.el.style; - s.top = this.offsetTop + this.offsetHeight + 2 + 'px'; - s.left = this.offsetLeft + 'px'; + rect = this.getBoundingClientRect(); + s.top = d.documentElement.scrollTop + d.body.scrollTop + rect.top + rect.height + 2 + 'px'; + s.left = d.documentElement.scrollLeft + d.body.scrollLeft + rect.left + 'px'; Menu.lastOpener = this; return Menu.open(Main.preParse($.x('ancestor::div[contains(@class,"postContainer")][1]', this))); }, diff --git a/script.coffee b/script.coffee index d94d530e5..a2ff84de5 100644 --- a/script.coffee +++ b/script.coffee @@ -850,8 +850,9 @@ Menu = # Position s = Menu.el.style # XXX prevent overflows - s.top = @offsetTop + @offsetHeight + 2 + 'px' - s.left = @offsetLeft + 'px' + rect = @getBoundingClientRect() + s.top = d.documentElement.scrollTop + d.body.scrollTop + rect.top + rect.height + 2 + 'px' + s.left = d.documentElement.scrollLeft + d.body.scrollLeft + rect.left + 'px' Menu.lastOpener = @ Menu.open Main.preParse $.x 'ancestor::div[contains(@class,"postContainer")][1]', @