aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-02-18 08:45:28 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-02-18 08:45:28 +0800
commite9dc381d3ace3404d0eafe94eb6da3b9a843abb8 (patch)
treec6a5b8a6f700513a889bec98adda02a7cdb68e21 /e-util
parent8b407ec081c4489d08b42159e0799cfb9deb4ba2 (diff)
downloadgsoc2013-evolution-e9dc381d3ace3404d0eafe94eb6da3b9a843abb8.tar.gz
gsoc2013-evolution-e9dc381d3ace3404d0eafe94eb6da3b9a843abb8.tar.zst
gsoc2013-evolution-e9dc381d3ace3404d0eafe94eb6da3b9a843abb8.zip
BugĀ 587014 - Magic space does not work as expected
Neither ETree::key-press nor ETableItem::key-press signal definitions specify a GSignalAccumulator that terminates the signal emission when a handler returns TRUE, and Evolution 2.29 connects multiple handlers to ETree::key-press. When the space key is pressed, the first handler implements the magic space bar behavior and returns TRUE, which should terminate signal emission but doesn't because there's no accumulator function on the signal. So the second handler runs and checks for other keys besides space. It returns FALSE since it didn't handle the key press. End result: emission site gets back FALSE (from the second handler) as the return value, so it thinks the key press was not handled at all and invokes the fallback handler -- e_selection_model_toggle_single_row() -- which -unselects- the newly selected row, making it appear the next unread message was never selected. Several other ETable-related signals that return "handled" flags also lack GSignalAccumulator functions. I've made a note to myself to fix those as well.
Diffstat (limited to 'e-util')
-rw-r--r--e-util/e-marshal.list2
1 files changed, 2 insertions, 0 deletions
diff --git a/e-util/e-marshal.list b/e-util/e-marshal.list
index b0be6abe05..6b70a9e3fe 100644
--- a/e-util/e-marshal.list
+++ b/e-util/e-marshal.list
@@ -1,6 +1,8 @@
BOOLEAN:BOXED,STRING
BOOLEAN:BOXED,POINTER,POINTER
+BOOLEAN:INT,INT,BOXED
BOOLEAN:INT,INT,OBJECT,INT,INT,UINT
+BOOLEAN:INT,POINTER,INT,BOXED
BOOLEAN:INT,POINTER,INT,OBJECT,INT,INT,UINT
BOOLEAN:NONE
BOOLEAN:OBJECT,DOUBLE,DOUBLE,BOOLEAN