Ticket #2072: gajim-singleclick.patch
| File gajim-singleclick.patch, 6.0 kB (added by TheCurse, 21 months ago) |
|---|
-
src/roster_window.py
2883 2883 elif event.button == 1: # Left click 2884 2884 model = self.tree.get_model() 2885 2885 type_ = model[path][C_TYPE] 2886 if type_ == 'group' and x < 27: 2887 # first cell in 1st column (the arrow SINGLE clicked) 2888 if (self.tree.row_expanded(path)): 2889 self.tree.collapse_row(path) 2890 else: 2891 self.tree.expand_row(path, False) 2892 2893 elif type_ == 'contact' and x < 27: 2894 account = model[path][C_ACCOUNT].decode('utf-8') 2895 jid = model[path][C_JID].decode('utf-8') 2896 # first cell in 1st column (the arrow SINGLE clicked) 2897 iters = self.get_contact_iter(jid, account) 2898 for iter in iters: 2899 path = model.get_path(iter) 2886 if gajim.config.get('singleclick'): 2887 self.open_chatwindow(widget, path) 2888 else: 2889 if type_ == 'group' and x < 27: 2890 # first cell in 1st column (the arrow SINGLE clicked) 2900 2891 if (self.tree.row_expanded(path)): 2901 2892 self.tree.collapse_row(path) 2902 2893 else: 2903 2894 self.tree.expand_row(path, False) 2895 2896 elif type_ == 'contact' and x < 27: 2897 account = model[path][C_ACCOUNT].decode('utf-8') 2898 jid = model[path][C_JID].decode('utf-8') 2899 # first cell in 1st column (the arrow SINGLE clicked) 2900 iters = self.get_contact_iter(jid, account) 2901 for iter in iters: 2902 path = model.get_path(iter) 2903 if (self.tree.row_expanded(path)): 2904 self.tree.collapse_row(path) 2905 else: 2906 self.tree.expand_row(path, False) 2904 2907 2905 2908 def on_req_usub(self, widget, list_): 2906 2909 '''Remove a contact. list_ is a list of (contact, account) tuples''' … … 3785 3788 3786 3789 win.window.present() 3787 3790 3788 def o n_roster_treeview_row_activated(self, widget, path, col = 0):3789 ''' When an iter is double clicked: open the first eventwindow'''3791 def open_chatwindow(self, widget, path): 3792 '''open a chatwindow''' 3790 3793 model = self.tree.get_model() 3791 3794 account = model[path][C_ACCOUNT].decode('utf-8') 3792 3795 type_ = model[path][C_TYPE] … … 3830 3833 resource = c.resource 3831 3834 self.on_open_chat_window(widget, c, account, resource = resource) 3832 3835 3836 def on_roster_treeview_row_activated(self, widget, path, col = 0): 3837 '''When an iter is double clicked: open the first event window''' 3838 if not gajim.config.get('singleclick'): 3839 self.open_chatwindow(widget, path) 3840 3833 3841 def on_roster_treeview_row_expanded(self, widget, iter, path): 3834 3842 '''When a row is expanded change the icon of the arrow''' 3835 3843 model = self.tree.get_model() -
src/groupchat_control.py
1757 1757 win.set_active_tab(nick_jid, self.account) 1758 1758 win.window.present() 1759 1759 1760 def o n_list_treeview_row_activated(self, widget, path, col = 0):1761 ''' When an iter is double clicked: open thechat window'''1760 def open_chatwindow(self, widget, path): 1761 '''open a chat window''' 1762 1762 model = widget.get_model() 1763 1763 if len(path) == 1: # It's a group 1764 1764 if (widget.row_expanded(path)): … … 1768 1768 else: # We want to send a private message 1769 1769 nick = model[path][C_NICK].decode('utf-8') 1770 1770 self._start_private_message(nick) 1771 1772 def on_list_treeview_row_activated(self, widget, path, col = 0): 1773 '''When an iter is double clicked: open the chat window''' 1774 if not gajim.config.get('singleclick'): 1775 self.open_chatwindow(widget, path) 1771 1776 1772 1777 def on_list_treeview_button_press_event(self, widget, event): 1773 1778 '''popup user's group's or agent menu''' … … 1808 1813 widget.get_selection().unselect_all() 1809 1814 return 1810 1815 1811 model = widget.get_model() 1812 iter = model.get_iter(path) 1813 nick = model[iter][C_NICK].decode('utf-8') 1814 if not nick in gajim.contacts.get_nick_list(self.account, 1815 self.room_jid): 1816 #it's a group 1817 col = widget.get_column(0) 1818 avatar_cell = col.get_cell_renderers()[0] 1819 (pos, avatar_size) = col.cell_get_position(avatar_cell) 1820 status_cell = col.get_cell_renderers()[1] 1821 (pos, status_size) = col.cell_get_position(status_cell) 1822 if x > avatar_size and x < avatar_size + status_size: 1823 if (widget.row_expanded(path)): 1824 widget.collapse_row(path) 1825 else: 1826 widget.expand_row(path, False) 1827 elif event.state & gtk.gdk.SHIFT_MASK: 1828 self.append_nick_in_msg_textview(self.msg_textview, nick) 1829 self.msg_textview.grab_focus() 1816 if gajim.config.get('singleclick'): 1817 self.open_chatwindow(widget, path) 1830 1818 return True 1819 else: 1820 model = widget.get_model() 1821 iter = model.get_iter(path) 1822 nick = model[iter][C_NICK].decode('utf-8') 1823 if not nick in gajim.contacts.get_nick_list(self.account, 1824 self.room_jid): 1825 #it's a group 1826 col = widget.get_column(0) 1827 avatar_cell = col.get_cell_renderers()[0] 1828 (pos, avatar_size) = col.cell_get_position(avatar_cell) 1829 status_cell = col.get_cell_renderers()[1] 1830 (pos, status_size) = col.cell_get_position(status_cell) 1831 if x > avatar_size and x < avatar_size + status_size: 1832 if (widget.row_expanded(path)): 1833 widget.collapse_row(path) 1834 else: 1835 widget.expand_row(path, False) 1836 elif event.state & gtk.gdk.SHIFT_MASK: 1837 self.append_nick_in_msg_textview(self.msg_textview, nick) 1838 self.msg_textview.grab_focus() 1839 return True 1831 1840 1832 1841 def append_nick_in_msg_textview(self, widget, nick): 1833 1842 message_buffer = self.msg_textview.get_buffer() -
src/common/config.py
226 226 'treat_incoming_messages': [ opt_str, '', _('Can be empty, \'chat\' or \'normal\'. If not empty, treat all incoming messages as if they were of this type')], 227 227 'scroll_roster_to_last_message': [opt_bool, True, _('If True, Gajim will scroll and select the contact who sent you the last message, if chat window is not already opened.')], 228 228 'use_latex': [opt_bool, False, _('If True, Gajim will convert string between $$ and $$ to an image using dvips and convert before insterting it in chat window.')], 229 'singleclick':[opt_bool, False, _('If True, Gajim will open Windows on singleclick instead of a doubleclick')], 229 230 } 230 231 231 232 __options_per_key = {
