severity 462372 important
thanks

Looks like this is caused by the attached python plugin.

-- 
Sam Morris <[EMAIL PROTECTED]>
# XChat notification area icon plugin
# Copyright (C) 2005 Ross Burton <[EMAIL PROTECTED]>
#
#   This library is free software; you can redistribute it and/or modify it
#   under the terms of the GNU Lesser General Public License as published by the
#   Free Software Foundation; either version 2 of the License, or (at your
#   option) any later version.
#
#   This library is distributed in the hope that it will be useful, but WITHOUT
#   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
#   for more details.
#
# Magically shows an icon in the notification area when someone talks to you.
# Note that the icon doesn't appear if the event happens in the active tab. This
# may change in the future, I'm not sure.
#
# Contributed by Bas van der Lei <[EMAIL PROTECTED]>:
# * tooltips describing happened
#
# TODO:
# * use wnck to find xchat and always alert on events if xchat is not on the
#   same workspace
# * clicking on icon should show xchat

__module_name__ = "notify"
__module_version__ = "0.2"
__module_description__ = "Notification area integration plugin"

import os
pid = os.getpid()

import xchat
xchat.prnt(__module_description__ + " loaded")

import pygtk; pygtk.require("2.0")
import gtk
import egg.trayicon

icon = egg.trayicon.TrayIcon("XChat")
eventbox = gtk.EventBox()
icon.add(eventbox)
eventbox.add(gtk.image_new_from_icon_name("xchat", gtk.ICON_SIZE_SMALL_TOOLBAR))

tips = gtk.Tooltips()

focus_context = None
notify_context = None

def same_context(a, b):
    if a is None or b is None: return False
    return a.get_info("host") == b.get_info("host") and a.get_info("channel") 
== b.get_info("channel")

def focus_cb(word, word_eol, userdata):
    global focus_context, notify_context
    focus_context = xchat.get_context()
    if same_context (notify_context, focus_context):
        icon.hide()
        tips.disable()
    return xchat.EAT_NONE

def highlight_cb(word, word_eol, userdata):
    global focus_context, notify_context
    if not same_context(focus_context, xchat.get_context()):
        tips.set_tip(icon, ("[%s]: %s"%(word[0], word[1]))[0:79])
        tips.enable()
        icon.show_all()
        notify_context = xchat.get_context()
    return xchat.EAT_NONE

def private_cb(word, word_eol, userdata):
    global focus_context, notify_context
    if not same_context(focus_context, xchat.get_context()):
        tips.set_tip(icon, ("[%s]: %s"%(word[0], word[1]))[0:79])
        tips.enable()
        icon.show_all()
        notify_context = xchat.get_context()
    return xchat.EAT_NONE

xchat.hook_print("Focus Tab", focus_cb)
xchat.hook_print("Channel Action Hilight", highlight_cb)
xchat.hook_print("Channel Msg Hilight", highlight_cb)
xchat.hook_print("Private Message", private_cb)
xchat.hook_print("Private Message to Dialog", private_cb)

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to