To avoid another case like bug #587014, add GSignalAccumulator functions
to all ETable and ETree signals that return a flag to indicate the signal
has been handled.
See commit e9dc381d3a for an example of
the kind of problems not having a GSignalAccumulator can cause.
Signals changed:
ETree::click
ETree::right-click
ETree::white-space-event
ETable::click
ETable::key-press
ETable::right-click
ETable::start-drag
ETable::white-space-event
ETableItem::click
ETableItem::right-click
ETableItem::start-drag
ETableGroup::click
ETableGroup::key-press
ETableGroup::right-click
ETableGroup::start-drag
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.
2008-08-11 Milan Crha <mcrha@redhat.com>
** Fix for bug #519292
* mail/message-list.c: (load_tree_expand_all): Drop function.
* mail/message-list.c: (regen_list_done): Rather use desired expanded state
value when creating the tree instead of the default model's value for
this to have 'expand/collapse all' commands work better and quicker.
* widgets/tablee-tree.h: (e_tree_load_all_expanded_state):
* widgets/tablee-tree.c: (e_tree_load_all_expanded_state):
* widgets/tablee-tree-table-adapter.h:
(e_tree_table_adapter_load_all_expanded_state):
* widgets/tablee-tree-table-adapter.c:
(e_tree_table_adapter_load_all_expanded_state),
(set_expanded_state_func), (set_collapsed_state_func):
Drop functions in favor of new functions.
* widgets/tablee-tree.h: (e_tree_force_expanded_state):
* widgets/tablee-tree.c: (e_tree_force_expanded_state):
* widgets/tablee-tree-table-adapter.h: (e_tree_table_adapter_force_expanded_state):
* widgets/tablee-tree-table-adapter.c: (e_tree_table_adapter_force_expanded_state),
(struct ETreeTableAdapterPriv), (create_gnode), (etta_init):
Use either default value of the model to expanded state of new node or
use the one which has been set (forced) by new functions.
svn path=/trunk/; revision=35954
2008-08-11 Milan Crha <mcrha@redhat.com>
** Fix for bug #352695
* widgets/table/e-tree-table-adapter.h:
(e_tree_table_adapter_save_expanded_state_xml),
(e_tree_table_adapter_load_expanded_state_xml):
* widgets/table/e-tree-table-adapter.c:
(e_tree_table_adapter_save_expanded_state_xml),
(e_tree_table_adapter_save_expanded_state),
(e_tree_table_adapter_load_expanded_state_xml),
(e_tree_table_adapter_load_expanded_state):
* widgets/table/e-tree.h: (e_tree_save_expanded_state_xml),
(e_tree_load_expanded_state_xml):
* widgets/table/e-tree.c: (e_tree_save_expanded_state_xml),
(e_tree_load_expanded_state_xml):
Be able to store expanded state also in memory, not only on the disk.
* mail/message-list.c: (struct _MessageListPrivate), (save_tree_state),
(load_tree_state), (on_model_row_changed), (message_list_init),
(message_list_construct), (struct _regen_list_msg), (regen_list_done),
(regen_list_free), (mail_regen_list): Be able to recognize whether
there has been any change on any row in a list and save expanded
state only in case there was any change. Also use in-memory storing
of the expanded state in case we do not want to rewrite full view
It's for searches only, and it's not stored between sessions.
svn path=/trunk/; revision=35953
2008-06-06 Matthew Barnes <mbarnes@redhat.com>
** Allow evolution to build with G_DISABLE_SINGLE_INCLUDES and
GTK_DISABLE_SINGLE_INCLUDES defined. (#536637)
svn path=/trunk/; revision=35606
2008-04-30 Milan Crha <mcrha@redhat.com>
** Fix for bug #528288
* widgets/misc/e-filter-bar.c: (get_property): Do not return any query
with empty text from search bar.
* widgets/table/e-tree.h: (e_tree_set_info_message):
* widgets/table/e-tree.c: (struct ETreePriv), (et_dispose), (e_tree_init),
(tree_size_allocate), (e_tree_set_info_message):
Allow setting info message into the tree. It doesn't check
whether the tree is empty or not, so take care of that.
* mail/em-folder-browser.c: (emfb_init), (em_folder_browser_show_wide):
Ensure minimum size for preview and message list.
* mail/em-folder-browser.c: (get_view_query):
Distinguish between no filter and custom filter.
* mail/message-list.c: (regen_list_done):
Set info message to tree when no message shown in a list.
svn path=/trunk/; revision=35459
2005-06-23 Kaushal Kumar <kakumar@novell.com>
* e-util/Makefile.am, widgets/e-timezone-dialog/Makefile.am,
addressbook/gui/search/Makefile.am,
plugins/groupwise-features/Makefile.am: Added widgets in INCLUDES.
Updated the include paths to use misc instead of widgets/misc.
svn path=/trunk/; revision=29574
2005-06-17 Kaushal Kumar <kakumar@novell.com>
* Retired GAL from Head. The relevant files have moved inside
evolution. Thanks to JP Rosevear for performing the cvs surgery. The
files have been moved in the following order.
evolution/e-util <- gal/gal/util
evolution/a11y <- gal/gal/a11y
evolution/a11y/e-table <- gal/gal/a11y/e-table
evolution/a11y/e-text <- gal/gal/a11y/e-text
evolution/widgets/table <- gal/gal/e-table
evolution/widgets/text <- gal/gal/e-text
evolution/widgets/misc <- gal/gal/widgets
evolution/widgets/misc/pixmaps <- gal/gal/widgets/pixmaps
evolution/widgets/menus <- gal/gal/menus
Following is the summary of changes done to fix the build:-
- New files added to cvs repository,
- a11y/e-table/Makefile.am
- a11y/e-text/Makefile.am
- widgets/table/Makefile.am
- widgets/text/Makefile.am
- widgets/misc/pixmaps/Makefile.am
- iconv-detect.h
- iconv-detect.c
- Updated configure.in.
- Updated all the relevant Makefile.am files.
- Updated the include paths to replace all gal references.
- Updated the marshal list to suit gal files requirements.
svn path=/trunk/; revision=29522
2005-05-20 Li Yuan <li.yuan@sun.com>
* e-table-header-item.c:
* e-table-header-item.h:
export ethi_change_sort_state, so we can call it in a11y part.
* e-tree.c: (e_tree_get_header_item):
* e-tree.h:
return the header item of e-tree.
Fix for #302154.
svn path=/trunk/; revision=29393
2003-10-11 Yuedong Du <yuedong.du@sun.com>
* gal/a11y/e-table/Makefile.am: add new files.
* gal/a11y/e-table/gal-a11y-e-cell.c: (gal_a11y_e_cell_construct):
set the right role.
* gal/a11y/e-table/gal-a11y-e-table-item-factory.c: new file.
(gal_a11y_e_table_item_factory_get_accessible_type),
(gal_a11y_e_table_item_factory_create_accessible),
(gal_a11y_e_table_item_factory_class_init),
(gal_a11y_e_table_item_factory_init),
(gal_a11y_e_table_item_factory_get_type): factory for the table item
a11y object. in create_accessible, we judge the type of widget
then set correct role.
* gal/a11y/e-table/gal-a11y-e-table-item-factory.h: ditto.
* gal/a11y/e-table/gal-a11y-e-tree-factory.c: new file.
(gal_a11y_e_tree_factory_get_accessible_type),
(gal_a11y_e_tree_factory_create_accessible),
(gal_a11y_e_tree_factory_class_init),
(gal_a11y_e_tree_factory_init), (gal_a11y_e_tree_factory_get_type):
factory for a11y object of etree. Mostly copyed from
gal-a11y-e-table-factory.c.
* gal/a11y/e-table/gal-a11y-e-tree-factory.h: ditto
* gal/a11y/e-table/gal-a11y-e-tree.c: (init_child_item),
(et_ref_accessible_at_point), (et_get_n_children), (et_ref_child),
(et_class_init), (et_atk_component_iface_init), (et_init),
(gal_a11y_e_tree_get_type), (gal_a11y_e_tree_new):a11y object for
etree object, mostly copied from gal-a11y-e-table.c. init_child_item
set correct role for the table item.
* gal/a11y/e-table/gal-a11y-e-tree.h: ditto.
* gal/e-table/e-table-item.c: (eti_class_init): register factory
for table item a11y object.
* gal/e-table/e-tree.c: (e_tree_get_item), (e_tree_class_init):
add new access fuction to get the table item of etree.
* gal/e-table/e-tree.h: ditto
svn path=/trunk/; revision=22867
2002-09-24 Mike Kestner <mkestner@ximian.com>
* e-tree.c (e_tree_set_search_column): New api to set the search
column on a tree without having to set a sort column.
svn path=/trunk/; revision=18193
2002-06-03 Christopher James Lahey <clahey@ximian.com>
* e-cell-text.c (ect_style_set): Get the font from the style again
when the style changes.
(init): Checks for the environment variable GAL_ELLIPSIS and uses
that instead of ... if it is set.
* e-table-click-to-add.c (finish_editing): e_table_item_leave_edit
before committing.
(etcta_event): Added a missing break; here.
* e-table-item.c (eti_style_set): On style set, free the height
cache, request a reflow and a redraw, and call
eti_idle_maybe_show_cursor.
(e_table_item_compute_location): Don't call eti_get_height here,
just use the cached value.
* e-tree.c, e-tree.h (e_tree_get_table_adapter): Added this simple
accessor function.
svn path=/trunk/; revision=17088
2002-05-02 Christopher James Lahey <clahey@ximian.com>
* e-table-click-to-add.c: Added horizontal dividers to this item
when in table mode.
* e-table.c, e-tree.c: Made the background be an
e-canvas-background instead of a
* e-tree.c, e-tree.h: Added a white_space_event for feature parity
with ETable.
svn path=/trunk/; revision=16667
2002-04-29 Christopher James Lahey <clahey@ximian.com>
* configure.in: Changed LDFLAGS to LIBS for tests here. Bumped
the version number to 0.19.99.15.
From gal/e-table/ChangeLog:
2002-04-29 Christopher James Lahey <clahey@ximian.com>
* e-tree.c, e-tree.h (e_tree_path_foreach): Added this function
which recurses over all nodes, regardless of selection.
svn path=/trunk/; revision=16635
2002-01-31 Christopher James Lahey <clahey@ximian.com>
* e-tree.c, e-tree.h (e_tree_find_next): Make this function take a
bitfield of parameters instead of two bools.
svn path=/trunk/; revision=15538
2002-01-31 Christopher James Lahey <clahey@ximian.com>
* e-tree-selection-model.c, e-tree-selection-model.h
(e_tree_selection_model_get_cursor): Added this simple accessor
function.
* e-tree.c, e-tree.h (e_tree_find_next): Searches from the cursor
given the search parameters and moves the cursor if it ever
matches.
svn path=/trunk/; revision=15537
2001-09-01 Christopher James Lahey <clahey@ximian.com>
* e-cell-float.c (ecf_get_text, ecf_free_text): Rename these
functions from ecn_get_text and ecn_free_text.
* e-cell-tree.c (ect_height): Make sure the height is a multiple
of two here.
* e-table-header-item.c, e-table-header-item.h: Added a "tree"
argument so that the sorting can be set by right clicking on the
header item.
* e-table-item.c (eti_table_model_rows_deleted): Added some
assertions here.
* e-tree-selection-model.c (etsm_find_node_unless_equals): Fixed
indentation.
* e-tree-table-adapter.c (etta_proxy_node_changed): Rewrote this
to be more readable.
(e_tree_table_adapter_node_set_expanded): Added an assertion.
* e-tree.c, e-tree.h (e_tree_get_spec): Added this function.
(e_tree_setup_header): Set the tree argument on the
ETableHeaderItem here.
svn path=/trunk/; revision=12553
2001-08-24 Christopher James Lahey <clahey@ximian.com>
* e-table-group-container.c, e-table-group-leaf.c,
e-table-group-leaf.h, e-table-group.c, e-table-group.h: Added
start_drag signals.
* e-table-item.c, e-table-item.h (eti_event): Send the start_drag
signal. Fixes Ximian bug #807.
* e-table.c, e-table.h, e-tree.c, e-tree.h: Added start_drag
signal. Made default handler start drag & drop if we're set to
automatically handle dnd. Ripped out the code to handle watching
events for dnd since start_drag does this now.
svn path=/trunk/; revision=12437
2001-06-27 Peter Williams <peterw@ximian.com>
* configure.in: Bump version number due to incompatible changes
in ETree.
gal/e-table:
2001-06-27 Peter Williams <peterw@ximian.com>
* e-tree-selection-model.c (e_tree_selection_model_add_to_selection): New function,
heavily based on select_single_row.
* e-tree-selection-model.h: Added prototype;
* e-tree.c (e_tree_get_model): New accessor function.
(e_tree_get_selection_model): Same.
(e_tree_selected_count, e_tree_select_all, e_tree_invert_select): Removed. With
the accessors these become pointless.
* e-tree.h: Prototype the functions above. Remove a few functions that
don't make sense anymore.
svn path=/trunk/; revision=10543
2001-04-23 Christopher James Lahey <clahey@ximian.com>
* e-table.c (e_table_get_cell_geometry): Documented this function
properly.
* e-tree.c, e-tree.h (e_tree_get_cell_geometry): Added this
function.
svn path=/trunk/; revision=9533
2001-04-15 Christopher James Lahey <clahey@ximian.com>
* e-cell-text.c (ect_show_tooltip): Set the background color to
the specified tooltip->background. Set the foreground color to
the specified tooltip->foreground.
* e-table-item.c (eti_get_cell_background_color,
eti_get_cell_foreground_color): Added these functions.
(eti_draw, _do_tooltip): Use these new functions.
* e-table-tooltip.h: Added foreground and background colors to
this structure.
* e-tree.c, e-tree.h (e_tree_get_tooltip): Added this function.
svn path=/trunk/; revision=9338
2001-04-04 Christopher James Lahey <clahey@ximian.com>
* e-tree.h (E_TREE_USE_TREE_SELECTION): Turn on
E_TREE_USE_TREE_SELECTION.
svn path=/trunk/; revision=9165
2001-04-01 Christopher James Lahey <clahey@ximian.com>
* Makefile.am (libetable_la_SOURCES): Added
e-tree-selection-model.c.
(libetableinclude_HEADERS): Added e-tree-selection-model.h.
* e-tree.c, e-tree.h: Added code to use ETreeSelectionModel if the
string E_TREE_USE_TREE_SELECTION is defined.
svn path=/trunk/; revision=9082
2001-03-31 Christopher James Lahey <clahey@ximian.com>
* e-tree.c, e-tree.h: Accidently committed this with using the
tree selection model turned on. Rolled back this change.
svn path=/trunk/; revision=9076
2001-03-31 Christopher James Lahey <clahey@ximian.com>
* e-tree-scrolled.c: Include <gal/util/e-util.h> here.
* e-tree-selection-model.c, e-tree-selection-model.h: Privatized
this class. Cleaned this up a bit. Added handlers for signals
from the model.
* e-tree.c, e-tree.h: Privatized this class.
svn path=/trunk/; revision=9075