2008-02-22 Gary Burton <gary.burton@zen.co.uk>

* src/DataViews/RelationView.py:
	* src/Editors/_EditFamily.py:
	* src/Editors/_EditChildRef.py
	Fix crash on doubleclicking buttons. Bug #1802



svn: r10096
This commit is contained in:
Gary Burton
2008-02-22 22:09:39 +00:00
parent a1450a8c29
commit a58e6fdb60
4 changed files with 56 additions and 22 deletions

View File

@@ -62,6 +62,8 @@ from BasicUtils import name_displayer
_RETURN = gtk.gdk.keyval_from_name("Return")
_KP_ENTER = gtk.gdk.keyval_from_name("KP_Enter")
_LEFT_BUTTOGN = 1
_RIGHT_BUTTON = 3
#-------------------------------------------------------------------------
#
@@ -152,8 +154,7 @@ class EditChildRef(EditSecondary):
return (_('Child Reference'),_('Child Reference Editor'))
def edit_child(self,obj,event):
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1 \
or event.keyval in (_RETURN, _KP_ENTER):
if button_activated(event, _LEFT_BUTTON):
from _EditPerson import EditPerson
handle = self.obj.ref
try:
@@ -178,3 +179,13 @@ class EditChildRef(EditSecondary):
if self.callback:
self.callback(self.obj)
self.close()
def button_activated(event, mouse_button):
if (event.type == gtk.gdk.BUTTON_PRESS and \
event.button == mouse_button) or \
(event.type == gtk.gdk.KEY_PRESS and \
event.keyval in (_RETURN, _KP_ENTER)):
return True
else:
return False

View File

@@ -74,6 +74,8 @@ SelectPerson = selector_factory('Person')
_RETURN = gdk.keyval_from_name("Return")
_KP_ENTER = gdk.keyval_from_name("KP_Enter")
_LEFT_BUTTON = 1
_RIGHT_BUTTON = 3
class ChildEmbedList(EmbeddedList):
"""
@@ -781,8 +783,7 @@ class EditFamily(EditPrimary):
'select the existing family'))
def edit_person(self, obj, event, handle):
if event.type == gtk.gdk.BUTTON_PRESS \
or event.keyval in (_RETURN, _KP_ENTER):
if button_activated(event, _LEFT_BUTTON):
from _EditPerson import EditPerson
try:
person = self.db.get_person_from_handle(handle)
@@ -1039,3 +1040,13 @@ class EditFamily(EditPrimary):
else:
return ("", "")
return ("", "")
def button_activated(event, mouse_button):
if (event.type == gtk.gdk.BUTTON_PRESS and \
event.button == mouse_button) or \
(event.type == gtk.gdk.KEY_PRESS and \
event.keyval in (_RETURN, _KP_ENTER)):
return True
else:
return False