'

GMail popup blocker update

After a few days of letting my script make rounds through the GMail community, I can tell you that an unexpected number of people have been downloading it.  That is great, but it also made me realize I'm amongst a giant group who finds the popup window irritating and that something should be done about it.

After a few days of letting my script make rounds through the GMail community, I can tell you that an unexpected number of people have been downloading it.  That is great, but it also made me realize I'm amongst a giant group who finds the popup window irritating and that something should be done about it.

I tried contacting several people at Google to see if they would listen to me about the problem.  After spending way too much time trying to talk to someone about it, I have given up.  I'm sure the seriousness of this problem has not gone unnoticed based on the number of complaints they are likely receiving.

For now, thanks to Jonathan Feinberg, I have updated my original greasemonkey script to make it more specific to the offending popup rather than a blanket removal of "onmouseover" events -- this should prevent any future functionality from being automatically disabled.  Thanks to everyone who has sent their gratitude -- it's my pleasure.  I will try and make it a goal of mine to post fixes to the small annoyances that can be easily fixed with a little grease.  If you have any suggestions feel free to leave comment or send an email.

Here is the updated script for anybody interested:

// ==UserScript==
// @name          GMail Popup Disabler
// @description   Disable the annoying GMail Talk popup.
// @include       http://mail.google.com/*
// @include       https://mail.google.com/*
// ==/UserScript==
document.addEventListener('mouseover', function(event){
    var t = event.relatedTarget;
    if (t && t.tagName == 'TD' && (t.parentNode.getAttribute('class') == 'rr' || t.parentNode.getAttribute('class') == 'ur'))
    {
        event.stopPropagation();
        event.preventDefault();
    }
}, true);