Mercurial > libervia-backend
diff frontends/src/primitivus/chat.py @ 380:ede26abf6ca1
primitivus: freedesktop notifications (if available) when somebody is talking to us and we have not focus, or our nick is pinged and we have not focus.
This need python-Xlib to work, if it's not present, notification are silently ignored.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 27 Aug 2011 17:15:41 +0200 |
parents | d62eb9003375 |
children | 1f7a14d0343d |
line wrap: on
line diff
--- a/frontends/src/primitivus/chat.py Sat Aug 27 12:39:51 2011 +0200 +++ b/frontends/src/primitivus/chat.py Sat Aug 27 17:15:41 2011 +0200 @@ -231,6 +231,11 @@ self.content.append(ChatText(self, timestamp or None, nick, mymess, msg)) self.text_list.set_focus(len(self.content)-1) self.host.redraw() + if not self.host.notify.hasFocus(): + if self.type=="one2one": + self.host.notify.sendNotification("Primitivus: %s is talking to you" % from_jid) + elif self.getUserNick().lower() in msg.lower(): + self.host.notify.sendNotification("Primitivus: Somebody pinged your name in %s room" % self.target) def printInfo(self, msg, type='normal'): """Print general info @@ -242,6 +247,11 @@ self.content.append(sat_widgets.ClickableText(msg)) self.text_list.set_focus(len(self.content)-1) self.host.redraw() + if not self.host.notify.hasFocus(): + if self.type=="one2one": + self.host.notify.sendNotification("Primitivus: there is a message about you") + elif self.getUserNick().lower() in msg.lower(): + self.host.notify.sendNotification("Primitivus: Somebody is talking about you in %s room" % self.target) def startGame(self, game_type, referee, players): """Configure the chat window to start a game"""