Ticket #2072: gajim-singleclick.patch

File gajim-singleclick.patch, 6.0 kB (added by TheCurse, 21 months ago)

gajim-singleclick.patch

  • src/roster_window.py

     
    28832883                elif event.button == 1: # Left click 
    28842884                        model = self.tree.get_model() 
    28852885                        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) 
    29002891                                        if (self.tree.row_expanded(path)): 
    29012892                                                self.tree.collapse_row(path) 
    29022893                                        else: 
    29032894                                                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) 
    29042907 
    29052908        def on_req_usub(self, widget, list_): 
    29062909                '''Remove a contact. list_ is a list of (contact, account) tuples''' 
     
    37853788 
    37863789                win.window.present() 
    37873790 
    3788         def on_roster_treeview_row_activated(self, widget, path, col = 0): 
    3789                 '''When an iter is double clicked: open the first event window''' 
     3791        def open_chatwindow(self, widget, path): 
     3792                '''open a chatwindow''' 
    37903793                model = self.tree.get_model() 
    37913794                account = model[path][C_ACCOUNT].decode('utf-8') 
    37923795                type_ = model[path][C_TYPE] 
     
    38303833                                resource = c.resource 
    38313834                        self.on_open_chat_window(widget, c, account, resource = resource) 
    38323835 
     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 
    38333841        def on_roster_treeview_row_expanded(self, widget, iter, path): 
    38343842                '''When a row is expanded change the icon of the arrow''' 
    38353843                model = self.tree.get_model() 
  • src/groupchat_control.py

     
    17571757                win.set_active_tab(nick_jid, self.account) 
    17581758                win.window.present() 
    17591759 
    1760         def on_list_treeview_row_activated(self, widget, path, col = 0): 
    1761                 '''When an iter is double clicked: open the chat window''' 
     1760        def open_chatwindow(self, widget, path): 
     1761                '''open a chat window''' 
    17621762                model = widget.get_model() 
    17631763                if len(path) == 1: # It's a group 
    17641764                        if (widget.row_expanded(path)): 
     
    17681768                else: # We want to send a private message 
    17691769                        nick = model[path][C_NICK].decode('utf-8') 
    17701770                        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) 
    17711776 
    17721777        def on_list_treeview_button_press_event(self, widget, event): 
    17731778                '''popup user's group's or agent menu''' 
     
    18081813                                widget.get_selection().unselect_all() 
    18091814                                return 
    18101815 
    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)                       
    18301818                                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 
    18311840 
    18321841        def append_nick_in_msg_textview(self, widget, nick): 
    18331842                message_buffer = self.msg_textview.get_buffer() 
  • src/common/config.py

     
    226226                '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')], 
    227227                '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.')], 
    228228                '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')], 
    229230        } 
    230231 
    231232        __options_per_key = {