diff --git a/plugins/gtkgui/dialogs.py b/plugins/gtkgui/dialogs.py index b1d1619c35b3d7ddced1153591613c437e8a9f56..997359b30bb9d225a06d3f991a60caf78a067483 100644 --- a/plugins/gtkgui/dialogs.py +++ b/plugins/gtkgui/dialogs.py @@ -274,6 +274,8 @@ class Away_message_dialog: """Class for Away message dialog""" def run(self): """Wait for OK button to be pressed and return away messsage""" + if self.autoconnect: + gtk.gdk.threads_enter() rep = self.window.run() if rep == gtk.RESPONSE_OK: beg, end = self.message_buffer.get_bounds() @@ -282,6 +284,8 @@ class Away_message_dialog: else: message = -1 self.window.destroy() + if self.autoconnect: + gtk.gdk.threads_leave() return message def on_message_comboboxentry_changed(self, widget, data=None): @@ -297,10 +301,11 @@ class Away_message_dialog: if (event.state & gtk.gdk.CONTROL_MASK): self.window.response(gtk.RESPONSE_OK) - def __init__(self, plugin): + def __init__(self, plugin, autoconnect = 0): self.xml = gtk.glade.XML(GTKGUI_GLADE, 'away_message_dialog', APP) self.window = self.xml.get_widget('away_message_dialog') self.plugin = plugin + self.autoconnect = autoconnect message_textview = self.xml.get_widget('message_textview') self.message_buffer = message_textview.get_buffer() self.message_buffer.set_text(self.plugin.config['last_msg']) diff --git a/plugins/gtkgui/gtkgui.py b/plugins/gtkgui/gtkgui.py index 31123eb839dd1fbd07d67c42508dbc3d8ed77a94..f3271d378cd1abd14a90c1ebf2d02624676ca2c3 100644 --- a/plugins/gtkgui/gtkgui.py +++ b/plugins/gtkgui/gtkgui.py @@ -657,10 +657,13 @@ class plugin: def autoconnect(self): """auto connect at startup""" + message = self.roster.get_status_message('online', 1) + if message == -1: + return for a in self.accounts.keys(): if self.accounts[a].has_key('autoconnect'): if self.accounts[a]['autoconnect']: - self.roster.send_status(a, 'online', 'Online', 1) + self.roster.send_status(a, 'online', message, 1) return 0 def show_systray(self): diff --git a/plugins/gtkgui/roster_window.py b/plugins/gtkgui/roster_window.py index 76a833f58c248e4542e08961134bed788e5cffe0..51aa8d87c80e3a7553e0482227f4024c2d2edbbe 100644 --- a/plugins/gtkgui/roster_window.py +++ b/plugins/gtkgui/roster_window.py @@ -725,12 +725,12 @@ class roster_window: else: self.plugin.sleeper_state[account] = 0 - def get_status_message(self, status): + def get_status_message(self, status, autoconnect = 0): if (status == 'online' and not self.plugin.config['ask_online_status']) \ or (status == 'offline' and not \ self.plugin.config['ask_offline_status']): return status - w = Away_message_dialog(self.plugin) + w = Away_message_dialog(self.plugin, autoconnect) message = w.run() return message