]> Pileus Git - ~andy/gtk/commitdiff
add a gtk_list_store_sort_iter_changed line for some special case ...
authorKristian Rietveld <kris@gtk.org>
Tue, 26 Nov 2002 21:28:01 +0000 (21:28 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 26 Nov 2002 21:28:01 +0000 (21:28 +0000)
Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
        add a gtk_list_store_sort_iter_changed line for some special
        case ... (#96647 (issue 1), testcases from Soeren Sandmann and
        Daniel Elstner).

Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>

        Inconsistent state for toggle renderers, requested by Paolo Bacchilega
        in #88130.

        * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.

        * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
        fix some indentation issues.

        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
        (gtk_cell_renderer_toggle_set_property),
        (gtk_cell_renderer_toggle_get_property),
        (gtk_cell_renderer_toggle_render): add an inconsistent property.

        * gtk/gtkstyle.c (gtk_default_draw_check),
        (gtk_default_draw_option): support drawing inconsistent
        options/checks for cells.

Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
        (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
        calling _editing_done twice (which has nasty side-effects). (#96647,
        (issue 2) testcase from Soeren Sandmann).

Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>

        #82739, patch from Padraig O'Briain.

        * gtk/gtktreeviewcolumn.[ch]: add
        gtk_tree_view_column_cell_get_position()

Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>

        Yes, this chunk breaks ABI compatibility. Owen knows about it and
        agreed with it. It doesn't break ABI that bad though, things will
        still work. Please keep it silent :P.

        This patch fixes some keynav issues reported by Narayana Pattipati
        in #81633. (Also mentioned in #92037 (Sun tracking bug)).

        * gtk/gtkmarshalers.list: add two silly marshalers

        * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
        (gtk_tree_view_real_unselect_all),
        (gtk_tree_view_real_select_cursor_row),
        (gtk_tree_view_real_toggle_cursor_row),
        (gtk_tree_view_real_expand_collapse_cursor_row),
        (gtk_tree_view_real_start_interactive_search): change the return
        type from void to gboolean, update prototypes, functions, signals and
        entries in GtkTreeViewClass,
        (gtk_tree_view_class_init): add select_cursor_row binding for
        enter key,
        (gtk_tree_view_key_press): only navigate the header button if the
        header is also visible ...

Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>

        API bit of #75745, reported by Richard Hult.

        * gtk/gtkcellrenderer.h (GtkCellRendererState): add
        GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.

19 files changed:
ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcellrenderer.c
gtk/gtkcellrenderer.h
gtk/gtkcellrenderertext.c
gtk/gtkcellrenderertoggle.c
gtk/gtkliststore.c
gtk/gtkmarshalers.list
gtk/gtkstyle.c
gtk/gtktreeprivate.h
gtk/gtktreestore.c
gtk/gtktreeview.c
gtk/gtktreeview.h
gtk/gtktreeviewcolumn.c
gtk/gtktreeviewcolumn.h

index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 38a4c8a5ce849839a034f194ee2ea076419ef172..bc9efafc1345db5efdf8561cf3d838e713db9808 100644 (file)
@@ -1,3 +1,74 @@
+Tue Nov 26 22:26:04 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtk{tree,list}store.c (gtk_{tree,list}_store_real_set_value):
+       add a gtk_list_store_sort_iter_changed line for some special
+       case ... (#96647 (issue 1), testcases from Soeren Sandmann and
+       Daniel Elstner).
+
+Tue Nov 26 22:18:06 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Inconsistent state for toggle renderers, requested by Paolo Bacchilega
+       in #88130.
+
+       * gtk/gtktreeprivate.h: move GtkCellRendererInfo here.
+
+       * gtk/gtkcellrenderer.c: moved GtkCellRendererInfo away,
+       fix some indentation issues.
+
+       * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+       (gtk_cell_renderer_toggle_set_property),
+       (gtk_cell_renderer_toggle_get_property),
+       (gtk_cell_renderer_toggle_render): add an inconsistent property.
+
+       * gtk/gtkstyle.c (gtk_default_draw_check),
+       (gtk_default_draw_option): support drawing inconsistent
+       options/checks for cells.
+
+Tue Nov 26 22:14:14 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done),
+       (gtk_cell_renderer_text_start_editing): add a focus_out_id to avoid
+       calling _editing_done twice (which has nasty side-effects). (#96647,
+       (issue 2) testcase from Soeren Sandmann).
+
+Tue Nov 26 22:12:21 2002  Kristian Rietveld  <kris@gtk.org>
+
+       #82739, patch from Padraig O'Briain.
+
+       * gtk/gtktreeviewcolumn.[ch]: add
+       gtk_tree_view_column_cell_get_position()
+
+Tue Nov 26 22:06:29 2002  Kristian Rietveld  <kris@gtk.org>
+
+       Yes, this chunk breaks ABI compatibility. Owen knows about it and
+       agreed with it. It doesn't break ABI that bad though, things will
+       still work. Please keep it silent :P.
+
+       This patch fixes some keynav issues reported by Narayana Pattipati
+       in #81633. (Also mentioned in #92037 (Sun tracking bug)).
+
+       * gtk/gtkmarshalers.list: add two silly marshalers
+
+       * gtk/gtktreeview.[ch] (gtk_tree_view_real_select_all),
+       (gtk_tree_view_real_unselect_all),
+       (gtk_tree_view_real_select_cursor_row),
+       (gtk_tree_view_real_toggle_cursor_row),
+       (gtk_tree_view_real_expand_collapse_cursor_row),
+       (gtk_tree_view_real_start_interactive_search): change the return
+       type from void to gboolean, update prototypes, functions, signals and
+       entries in GtkTreeViewClass,
+       (gtk_tree_view_class_init): add select_cursor_row binding for
+       enter key,
+       (gtk_tree_view_key_press): only navigate the header button if the
+       header is also visible ...
+
+Tue Nov 26 22:05:48 2002  Kristian Rietveld  <kris@gtk.org>
+
+       API bit of #75745, reported by Richard Hult.
+
+       * gtk/gtkcellrenderer.h (GtkCellRendererState): add
+       GTK_CELL_RENDERER_FOCUSED, rest of this bug fix will follow later.
+
 Tue Nov 26 18:28:58 GMT 2002  Tony Gale <gale@gtk.org>
 
        * docs/tutorial/package-db-tutorial.sh:
index 0efcef43a6a94f6de2437daffeb0076ff77bf0c5..4505727dac40336c602b789c20365c6119629b37 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "gtkcellrenderer.h"
 #include "gtkintl.h"
+#include "gtktreeprivate.h"
 
 static void gtk_cell_renderer_init       (GtkCellRenderer      *cell);
 static void gtk_cell_renderer_class_init (GtkCellRendererClass *class);
@@ -51,14 +52,6 @@ enum {
   PROP_CELL_BACKGROUND_SET
 };
 
-#define CELLINFO_KEY "gtk-cell-renderer-info"
-
-typedef struct _GtkCellRendererInfo GtkCellRendererInfo;
-struct _GtkCellRendererInfo
-{
-  GdkColor cell_background;
-};
-
 GType
 gtk_cell_renderer_get_type (void)
 {
@@ -102,7 +95,8 @@ gtk_cell_renderer_init (GtkCellRenderer *cell)
   cell->ypad = 0;
 
   cellinfo = g_new0 (GtkCellRendererInfo, 1);
-  g_object_set_data_full (G_OBJECT (cell), CELLINFO_KEY, cellinfo, g_free);
+  g_object_set_data_full (G_OBJECT (cell),
+                         GTK_CELL_RENDERER_INFO_KEY, cellinfo, g_free);
 }
 
 static void
@@ -251,7 +245,10 @@ gtk_cell_renderer_get_property (GObject     *object,
                                GParamSpec  *pspec)
 {
   GtkCellRenderer *cell = GTK_CELL_RENDERER (object);
-  GtkCellRendererInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+  GtkCellRendererInfo *cellinfo;
+
+  cellinfo = g_object_get_data (object,
+                               GTK_CELL_RENDERER_INFO_KEY);
 
   switch (param_id)
     {
@@ -377,7 +374,10 @@ static void
 set_cell_bg_color (GtkCellRenderer *cell,
                   GdkColor        *color)
 {
-  GtkCellRendererInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+  GtkCellRendererInfo *cellinfo;
+
+  cellinfo = g_object_get_data (G_OBJECT (cell),
+                               GTK_CELL_RENDERER_INFO_KEY);
 
   if (color)
     {
@@ -482,7 +482,10 @@ gtk_cell_renderer_render (GtkCellRenderer     *cell,
                          GtkCellRendererState flags)
 {
   gboolean selected = FALSE;
-  GtkCellRendererInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+  GtkCellRendererInfo *cellinfo;
+
+  cellinfo = g_object_get_data (G_OBJECT (cell),
+                               GTK_CELL_RENDERER_INFO_KEY);
 
   g_return_if_fail (GTK_IS_CELL_RENDERER (cell));
   g_return_if_fail (GTK_CELL_RENDERER_GET_CLASS (cell)->render != NULL);
index 487c86fcba884cbc0559c21fc8c6bba34c697afa..7b693e7c7fe7a140cf9dbc183dbfd35fd3f304ce 100644 (file)
@@ -32,7 +32,8 @@ typedef enum
   GTK_CELL_RENDERER_PRELIT      = 1 << 1,
   GTK_CELL_RENDERER_INSENSITIVE = 1 << 2,
   /* this flag means the cell is in the sort column/row */
-  GTK_CELL_RENDERER_SORTED      = 1 << 3
+  GTK_CELL_RENDERER_SORTED      = 1 << 3,
+  GTK_CELL_RENDERER_FOCUSED     = 1 << 4
 } GtkCellRendererState;
 
 typedef enum
index a7490317a0fe8e23a5564ed363a19085b2d9d50f..6b44447b57d5479a2aa69b7396809a6e4c4088ac 100644 (file)
@@ -23,6 +23,7 @@
 #include "gtkentry.h"
 #include "gtkmarshalers.h"
 #include "gtkintl.h"
+#include "gtktreeprivate.h"
 
 static void gtk_cell_renderer_text_init       (GtkCellRendererText      *celltext);
 static void gtk_cell_renderer_text_class_init (GtkCellRendererTextClass *class);
@@ -1328,6 +1329,16 @@ gtk_cell_renderer_text_editing_done (GtkCellEditable *entry,
 {
   const gchar *path;
   const gchar *new_text;
+  GtkCellRendererInfo *info;
+
+  info = g_object_get_data (G_OBJECT (data),
+                           GTK_CELL_RENDERER_INFO_KEY);
+
+  if (info->focus_out_id > 0)
+    {
+      g_signal_handler_disconnect (entry, info->focus_out_id);
+      info->focus_out_id = 0;
+    }
 
   if (GTK_ENTRY (entry)->editing_canceled)
     return;
@@ -1360,6 +1371,7 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer      *cell,
 {
   GtkCellRendererText *celltext;
   GtkWidget *entry;
+  GtkCellRendererInfo *info;
   
   celltext = GTK_CELL_RENDERER_TEXT (cell);
 
@@ -1377,14 +1389,17 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer      *cell,
   
   gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
   
+  info = g_object_get_data (G_OBJECT (cell),
+                           GTK_CELL_RENDERER_INFO_KEY);
+  
   gtk_widget_show (entry);
   g_signal_connect (entry,
                    "editing_done",
                    G_CALLBACK (gtk_cell_renderer_text_editing_done),
                    celltext);
-  g_signal_connect (entry, "focus_out_event",
-                   G_CALLBACK (gtk_cell_renderer_text_focus_out_event),
-                   celltext);
+  info->focus_out_id = g_signal_connect (entry, "focus_out_event",
+                        G_CALLBACK (gtk_cell_renderer_text_focus_out_event),
+                        celltext);
 
   return GTK_CELL_EDITABLE (entry);
 
index 617c69381f9795e41ab95ceb83766af5b7899be5..330a2e54e71030501b4f8abe69215998ea3bb569 100644 (file)
@@ -21,6 +21,7 @@
 #include <gtk/gtkcellrenderertoggle.h>
 #include "gtkintl.h"
 #include "gtkmarshalers.h"
+#include "gtktreeprivate.h"
 
 static void gtk_cell_renderer_toggle_get_property  (GObject                    *object,
                                                    guint                       param_id,
@@ -64,10 +65,10 @@ enum {
   PROP_ZERO,
   PROP_ACTIVATABLE,
   PROP_ACTIVE,
-  PROP_RADIO
+  PROP_RADIO,
+  PROP_INCONSISTENT
 };
 
-
 #define TOGGLE_WIDTH 12
 
 static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
@@ -133,6 +134,15 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                         FALSE,
                                                         G_PARAM_READABLE |
                                                         G_PARAM_WRITABLE));
+
+  g_object_class_install_property (object_class,
+                                  PROP_INCONSISTENT,
+                                  g_param_spec_boolean ("inconsistent",
+                                                        _("Inconsistent state"),
+                                                        _("The inconsistent stae of the button"),
+                                                        FALSE,
+                                                        G_PARAM_READABLE |
+                                                        G_PARAM_WRITABLE));
   
   g_object_class_install_property (object_class,
                                   PROP_ACTIVATABLE,
@@ -177,6 +187,18 @@ gtk_cell_renderer_toggle_get_property (GObject     *object,
     case PROP_ACTIVE:
       g_value_set_boolean (value, celltoggle->active);
       break;
+    case PROP_INCONSISTENT:
+      {
+       /* Move out of here when more properties start to use the info
+        * thing. I put it here to not affect performance, this property
+        * is not going to be used much.
+        */
+       GtkCellRendererInfo *cellinfo;
+       cellinfo = g_object_get_data (object, GTK_CELL_RENDERER_INFO_KEY);
+
+        g_value_set_boolean (value, cellinfo->inconsistent);
+      }
+      break;
     case PROP_ACTIVATABLE:
       g_value_set_boolean (value, celltoggle->activatable);
       break;
@@ -204,6 +226,16 @@ gtk_cell_renderer_toggle_set_property (GObject      *object,
       celltoggle->active = g_value_get_boolean (value);
       g_object_notify (G_OBJECT(object), "active");
       break;
+    case PROP_INCONSISTENT:
+      {
+       /* read comment in _get_property */
+       GtkCellRendererInfo *cellinfo;
+       cellinfo = g_object_get_data (object, GTK_CELL_RENDERER_INFO_KEY);
+
+       cellinfo->inconsistent = g_value_get_boolean (value);
+       g_object_notify (G_OBJECT (object), "inconsistent");
+      }
+      break;
     case PROP_ACTIVATABLE:
       celltoggle->activatable = g_value_get_boolean (value);
       g_object_notify (G_OBJECT(object), "activatable");
@@ -283,11 +315,12 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer      *cell,
                                 GtkCellRendererState  flags)
 {
   GtkCellRendererToggle *celltoggle = (GtkCellRendererToggle *) cell;
+  GtkCellRendererInfo *cellinfo;
   gint width, height;
   gint x_offset, y_offset;
   GtkShadowType shadow;
   GtkStateType state = 0;
-  
+
   gtk_cell_renderer_toggle_get_size (cell, widget, cell_area,
                                     &x_offset, &y_offset,
                                     &width, &height);
@@ -297,7 +330,12 @@ gtk_cell_renderer_toggle_render (GtkCellRenderer      *cell,
   if (width <= 0 || height <= 0)
     return;
 
-  shadow = celltoggle->active ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
+  cellinfo = g_object_get_data (G_OBJECT (cell), GTK_CELL_RENDERER_INFO_KEY);
+
+  if (cellinfo->inconsistent)
+    shadow = GTK_SHADOW_ETCHED_IN;
+  else
+    shadow = celltoggle->active ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
 
   if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
     {
index 538cbe67c283581a533a508817ff140ee7ca327a..a8d5b43b79a5f616adbd77e3128169533919dfa2 100644 (file)
@@ -717,6 +717,8 @@ gtk_list_store_real_set_value (GtkListStore *list_store,
          retval = TRUE;
          if (converted)
            g_value_unset (&real_value);
+         if (sort && GTK_LIST_STORE_IS_SORTED (list_store))
+            gtk_list_store_sort_iter_changed (list_store, iter, old_column);
          return retval;
        }
 
@@ -2266,7 +2268,6 @@ gtk_list_store_sort_iter_changed (GtkListStore *list_store,
   gtk_tree_model_rows_reordered (GTK_TREE_MODEL (list_store),
                                 tmp_path, NULL,
                                 new_order);
-
   gtk_tree_path_free (tmp_path);
   g_free (new_order);
 }
index b0fa87862df399bfa6fc346e0ef02ca2db60934c..a719713dc31341ba650367fbbf52353ef830467c 100644 (file)
@@ -32,6 +32,8 @@ BOOLEAN:OBJECT,BOXED,BOXED
 BOOLEAN:INT,INT
 BOOLEAN:VOID
 BOOLEAN:BOOLEAN
+BOOLEAN:NONE
+BOOLEAN:BOOLEAN,BOOLEAN,BOOLEAN
 ENUM:ENUM
 INT:POINTER
 NONE:BOOLEAN
index d36ad10bf420d8fed34d9c211b56fdbd6739c061..8c9fd1b39a0836ea6e20eb6f12e0c4cbb0b2f48f 100644 (file)
@@ -3623,6 +3623,10 @@ gtk_default_draw_check (GtkStyle      *style,
          draw_part (window, style->text_gc[state_type], area, x, y, CHECK_TEXT);
          draw_part (window, style->text_aa_gc[state_type], area, x, y, CHECK_AA);
        }
+      else if (shadow_type == GTK_SHADOW_ETCHED_IN) /* inconsistent */
+       {
+         draw_part (window, style->text_gc[state_type], area, x, y, CHECK_INCONSISTENT_TEXT);
+       }
     }
   else
     {
@@ -3712,6 +3716,11 @@ gtk_default_draw_option (GtkStyle      *style,
                        height - 4,
                        0, 360*64);
        }
+      else if (shadow_type == GTK_SHADOW_ETCHED_IN) /* inconsistent */
+        {
+          draw_part (window, widget->style->fg_gc[state_type],
+                    area, x, y, CHECK_INCONSISTENT_TEXT);
+       }
     }
   else
     {
index d289d59d598b1a791e4c27087aeed47ec66a9a83..dea5568ec7663972646608d791bb1df3a4e35200 100644 (file)
@@ -195,6 +195,21 @@ struct _GtkTreeViewPrivate
   GtkDestroyNotify search_destroy;
 };
 
+/* cool ABI compat hack */
+#define GTK_CELL_RENDERER_INFO_KEY "gtk-cell-renderer-info"
+
+typedef struct _GtkCellRendererInfo GtkCellRendererInfo;
+struct _GtkCellRendererInfo
+{
+  GdkColor cell_background;
+
+  /* text renderer */
+  gulong focus_out_id;
+
+  /* toggle renderer */
+  gboolean inconsistent :1;
+};
+
 #ifdef __GNUC__
 
 #define TREE_VIEW_INTERNAL_ASSERT(expr, ret)     G_STMT_START{          \
index d2bc74246fc78ca32fc1ea937b7233ddb7927ddb..d322e95c0792ad946c98f9ed2567ca83ffea3330 100644 (file)
@@ -839,6 +839,8 @@ gtk_tree_store_real_set_value (GtkTreeStore *tree_store,
          retval = TRUE;
          if (converted)
            g_value_unset (&real_value);
+          if (sort && GTK_TREE_STORE_IS_SORTED (tree_store))
+            gtk_tree_store_sort_iter_changed (tree_store, iter, old_column);
          return retval;
        }
 
index d7d0865270b51dc289478d81b634949bb4b44cac..5377e901e183255aeb45c51f09beeed96c3ef6f5 100644 (file)
@@ -223,16 +223,16 @@ static void gtk_tree_view_set_adjustments                 (GtkTreeView     *tree
 static gboolean gtk_tree_view_real_move_cursor            (GtkTreeView     *tree_view,
                                                           GtkMovementStep  step,
                                                           gint             count);
-static void gtk_tree_view_real_select_all                 (GtkTreeView     *tree_view);
-static void gtk_tree_view_real_unselect_all               (GtkTreeView     *tree_view);
-static void gtk_tree_view_real_select_cursor_row          (GtkTreeView     *tree_view,
+static gboolean gtk_tree_view_real_select_all             (GtkTreeView     *tree_view);
+static gboolean gtk_tree_view_real_unselect_all           (GtkTreeView     *tree_view);
+static gboolean gtk_tree_view_real_select_cursor_row      (GtkTreeView     *tree_view,
                                                           gboolean         start_editing);
-static void gtk_tree_view_real_toggle_cursor_row          (GtkTreeView     *tree_view);
-static void gtk_tree_view_real_expand_collapse_cursor_row (GtkTreeView     *tree_view,
-                                                          gboolean         logical,
-                                                          gboolean         expand,
-                                                          gboolean         open_all);
-static void gtk_tree_view_real_select_cursor_parent       (GtkTreeView     *tree_view);
+static gboolean gtk_tree_view_real_toggle_cursor_row      (GtkTreeView     *tree_view);
+static gboolean gtk_tree_view_real_expand_collapse_cursor_row (GtkTreeView     *tree_view,
+                                                              gboolean         logical,
+                                                              gboolean         expand,
+                                                              gboolean         open_all);
+static gboolean gtk_tree_view_real_select_cursor_parent   (GtkTreeView     *tree_view);
 static void gtk_tree_view_row_changed                     (GtkTreeModel    *model,
                                                           GtkTreePath     *path,
                                                           GtkTreeIter     *iter,
@@ -401,7 +401,7 @@ static void gtk_tree_view_real_start_editing (GtkTreeView       *tree_view,
                                              guint              flags);
 static void gtk_tree_view_stop_editing                  (GtkTreeView *tree_view,
                                                         gboolean     cancel_editing);
-static void gtk_tree_view_real_start_interactive_search (GtkTreeView *tree_view);
+static gboolean gtk_tree_view_real_start_interactive_search (GtkTreeView *tree_view);
 static GtkTreeViewColumn *gtk_tree_view_get_drop_column (GtkTreeView       *tree_view,
                                                         GtkTreeViewColumn *column,
                                                         gint               drop_position);
@@ -755,8 +755,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, select_all),
                  NULL, NULL,
-                 _gtk_marshal_NONE__NONE,
-                 G_TYPE_NONE, 0);
+                 _gtk_marshal_BOOLEAN__NONE,
+                 G_TYPE_BOOLEAN, 0);
 
   tree_view_signals[UNSELECT_ALL] =
     g_signal_new ("unselect_all",
@@ -764,8 +764,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, unselect_all),
                  NULL, NULL,
-                 _gtk_marshal_NONE__NONE,
-                 G_TYPE_NONE, 0);
+                 _gtk_marshal_BOOLEAN__NONE,
+                 G_TYPE_BOOLEAN, 0);
 
   tree_view_signals[SELECT_CURSOR_ROW] =
     g_signal_new ("select_cursor_row",
@@ -773,8 +773,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, select_cursor_row),
                  NULL, NULL,
-                 _gtk_marshal_VOID__BOOLEAN,
-                 G_TYPE_NONE, 1,
+                 _gtk_marshal_BOOLEAN__BOOLEAN,
+                 G_TYPE_BOOLEAN, 1,
                  G_TYPE_BOOLEAN);
 
   tree_view_signals[TOGGLE_CURSOR_ROW] =
@@ -783,8 +783,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, toggle_cursor_row),
                  NULL, NULL,
-                 _gtk_marshal_NONE__NONE,
-                 G_TYPE_NONE, 0);
+                 _gtk_marshal_BOOLEAN__NONE,
+                 G_TYPE_BOOLEAN, 0);
 
   tree_view_signals[EXPAND_COLLAPSE_CURSOR_ROW] =
     g_signal_new ("expand_collapse_cursor_row",
@@ -792,8 +792,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, expand_collapse_cursor_row),
                  NULL, NULL,
-                 _gtk_marshal_VOID__BOOLEAN_BOOLEAN_BOOLEAN,
-                 G_TYPE_NONE, 3,
+                 _gtk_marshal_BOOLEAN__BOOLEAN_BOOLEAN_BOOLEAN,
+                 G_TYPE_BOOLEAN, 3,
                  G_TYPE_BOOLEAN,
                  G_TYPE_BOOLEAN,
                  G_TYPE_BOOLEAN);
@@ -804,8 +804,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, select_cursor_parent),
                  NULL, NULL,
-                 _gtk_marshal_NONE__NONE,
-                 G_TYPE_NONE, 0);
+                 _gtk_marshal_BOOLEAN__NONE,
+                 G_TYPE_BOOLEAN, 0);
 
   tree_view_signals[START_INTERACTIVE_SEARCH] =
     g_signal_new ("start_interactive_search",
@@ -813,8 +813,8 @@ G_PARAM_READABLE));
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                  G_STRUCT_OFFSET (GtkTreeViewClass, start_interactive_search),
                  NULL, NULL,
-                 _gtk_marshal_NONE__NONE,
-                 G_TYPE_NONE, 0);
+                 _gtk_marshal_BOOLEAN__NONE,
+                 G_TYPE_BOOLEAN, 0);
 
   /* Key bindings */
   gtk_tree_view_add_move_binding (binding_set, GDK_Up, 0,
@@ -878,6 +878,12 @@ G_PARAM_READABLE));
 
   gtk_binding_entry_add_signal (binding_set, GDK_space, 0, "select_cursor_row", 1,
                                G_TYPE_BOOLEAN, TRUE);
+  gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "select_cursor_row", 1,
+                               G_TYPE_BOOLEAN, TRUE);
+  gtk_binding_entry_add_signal (binding_set, GDK_ISO_Enter, 0, "select_cursor_row", 1,
+                               G_TYPE_BOOLEAN, TRUE);
+  gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "select_cursor_row", 1,
+                               G_TYPE_BOOLEAN, TRUE);
 
   /* expand and collapse rows */
   gtk_binding_entry_add_signal (binding_set, GDK_plus, 0, "expand_collapse_cursor_row", 3,
@@ -3606,6 +3612,7 @@ gtk_tree_view_key_press (GtkWidget   *widget,
 
   /* FIXME: this is prolly broken when we go bidi */
   if (tree_view->priv->columns &&
+      GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_HEADERS_VISIBLE) &&
       (event->keyval == GDK_Left || event->keyval == GDK_Right))
     {
       gint width = 0;
@@ -7369,29 +7376,35 @@ gtk_tree_view_move_cursor_start_end (GtkTreeView *tree_view,
   gtk_tree_path_free (path);
 }
 
-static void
+static gboolean
 gtk_tree_view_real_select_all (GtkTreeView *tree_view)
 {
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   if (tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE)
-    return;
+    return FALSE;
+
   gtk_tree_selection_select_all (tree_view->priv->selection);
+
+  return TRUE;
 }
 
-static void
+static gboolean
 gtk_tree_view_real_unselect_all (GtkTreeView *tree_view)
 {
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   if (tree_view->priv->selection->type != GTK_SELECTION_MULTIPLE)
-    return;
+    return FALSE;
+
   gtk_tree_selection_unselect_all (tree_view->priv->selection);
+
+  return TRUE;
 }
 
-static void
+static gboolean
 gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
                                      gboolean     start_editing)
 {
@@ -7402,13 +7415,13 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
   cursor_path = NULL;
 
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   if (tree_view->priv->cursor)
     cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
 
   if (cursor_path == NULL)
-    return;
+    return FALSE;
 
   _gtk_tree_view_find_node (tree_view, cursor_path,
                            &cursor_tree, &cursor_node);
@@ -7416,7 +7429,7 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
   if (cursor_tree == NULL)
     {
       gtk_tree_path_free (cursor_path);
-      return;
+      return FALSE;
     }
 
   gtk_get_current_event_state (&state);
@@ -7428,7 +7441,7 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
       if (gtk_tree_view_start_editing (tree_view, cursor_path))
        {
          gtk_tree_path_free (cursor_path);
-         return;
+         return FALSE;
        }
     }
   _gtk_tree_selection_internal_select_node (tree_view->priv->selection,
@@ -7447,9 +7460,11 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
     gtk_tree_view_row_activated (tree_view, cursor_path, tree_view->priv->focus_column);
     
   gtk_tree_path_free (cursor_path);
+
+  return TRUE;
 }
 
-static void
+static gboolean
 gtk_tree_view_real_toggle_cursor_row (GtkTreeView *tree_view)
 {
   GtkRBTree *cursor_tree = NULL;
@@ -7457,21 +7472,21 @@ gtk_tree_view_real_toggle_cursor_row (GtkTreeView *tree_view)
   GtkTreePath *cursor_path = NULL;
 
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   cursor_path = NULL;
   if (tree_view->priv->cursor)
     cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
 
   if (cursor_path == NULL)
-    return;
+    return FALSE;
 
   _gtk_tree_view_find_node (tree_view, cursor_path,
                            &cursor_tree, &cursor_node);
   if (cursor_tree == NULL)
     {
       gtk_tree_path_free (cursor_path);
-      return;
+      return FALSE;
     }
 
   _gtk_tree_selection_internal_select_node (tree_view->priv->selection,
@@ -7486,11 +7501,11 @@ gtk_tree_view_real_toggle_cursor_row (GtkTreeView *tree_view)
   gtk_widget_grab_focus (GTK_WIDGET (tree_view));
   gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
   gtk_tree_path_free (cursor_path);
-}
-
 
+  return TRUE;
+}
 
-static void
+static gboolean
 gtk_tree_view_real_expand_collapse_cursor_row (GtkTreeView *tree_view,
                                               gboolean     logical,
                                               gboolean     expand,
@@ -7501,17 +7516,17 @@ gtk_tree_view_real_expand_collapse_cursor_row (GtkTreeView *tree_view,
   GtkRBNode *node;
 
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   cursor_path = NULL;
   if (tree_view->priv->cursor)
     cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
 
   if (cursor_path == NULL)
-    return;
+    return FALSE;
 
   if (_gtk_tree_view_find_node (tree_view, cursor_path, &tree, &node))
-    return;
+    return FALSE;
   
   gtk_widget_grab_focus (GTK_WIDGET (tree_view));
   gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
@@ -7522,9 +7537,11 @@ gtk_tree_view_real_expand_collapse_cursor_row (GtkTreeView *tree_view,
     gtk_tree_view_real_collapse_row (tree_view, cursor_path, tree, node, TRUE);
 
   gtk_tree_path_free (cursor_path);
+
+  return TRUE;
 }
 
-static void
+static gboolean
 gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view)
 {
   GtkRBTree *cursor_tree = NULL;
@@ -7532,21 +7549,21 @@ gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view)
   GtkTreePath *cursor_path = NULL;
 
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   cursor_path = NULL;
   if (tree_view->priv->cursor)
     cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
 
   if (cursor_path == NULL)
-    return;
+    return FALSE;
 
   _gtk_tree_view_find_node (tree_view, cursor_path,
                            &cursor_tree, &cursor_node);
   if (cursor_tree == NULL)
     {
       gtk_tree_path_free (cursor_path);
-      return;
+      return FALSE;
     }
 
   if (cursor_tree->parent_node)
@@ -7571,6 +7588,8 @@ gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view)
   gtk_widget_grab_focus (GTK_WIDGET (tree_view));
   gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
   gtk_tree_path_free (cursor_path);
+
+  return TRUE;
 }
 
 /* Cut and paste from gtkwindow.c */
@@ -7599,7 +7618,7 @@ send_focus_change (GtkWidget *widget,
   gdk_event_free (fevent);
 }
 
-static void
+static gboolean
 gtk_tree_view_real_start_interactive_search (GtkTreeView *tree_view)
 {
   GtkWidget *window;
@@ -7607,16 +7626,16 @@ gtk_tree_view_real_start_interactive_search (GtkTreeView *tree_view)
   GtkWidget *search_dialog;
 
   if (! GTK_WIDGET_HAS_FOCUS (tree_view))
-    return;
+    return FALSE;
 
   if (tree_view->priv->enable_search == FALSE ||
       tree_view->priv->search_column < 0)
-    return;
+    return FALSE;
 
   search_dialog = g_object_get_data (G_OBJECT (tree_view),
                                     GTK_TREE_VIEW_SEARCH_DIALOG_KEY);
   if (search_dialog)
-    return;
+    return FALSE;
 
   /* set up window */
   window = gtk_window_new (GTK_WINDOW_POPUP);
@@ -7662,6 +7681,8 @@ gtk_tree_view_real_start_interactive_search (GtkTreeView *tree_view)
 
   /* search first matching iter */
   gtk_tree_view_search_init (entry, tree_view);
+
+  return TRUE;
 }
 
 /* this function returns the new width of the column being resized given
index 68221c8f267dc9b3a6ad0999ac155e7fc6bf9a37..e473f741e68c6df79cd7fc8283b9afd28f838b27 100644 (file)
@@ -90,17 +90,17 @@ struct _GtkTreeViewClass
   gboolean (* move_cursor)                (GtkTreeView       *tree_view,
                                           GtkMovementStep    step,
                                           gint               count);
-  void     (* select_all)                 (GtkTreeView       *tree_view);
-  void     (* unselect_all)               (GtkTreeView       *tree_view);
-  void     (* select_cursor_row)          (GtkTreeView       *tree_view,
+  gboolean (* select_all)                 (GtkTreeView       *tree_view);
+  gboolean (* unselect_all)               (GtkTreeView       *tree_view);
+  gboolean (* select_cursor_row)          (GtkTreeView       *tree_view,
                                           gboolean           start_editing);
-  void     (* toggle_cursor_row)          (GtkTreeView       *tree_view);
-  void     (* expand_collapse_cursor_row) (GtkTreeView       *tree_view,
+  gboolean (* toggle_cursor_row)          (GtkTreeView       *tree_view);
+  gboolean (* expand_collapse_cursor_row) (GtkTreeView       *tree_view,
                                           gboolean           logical,
                                           gboolean           expand,
                                           gboolean           open_all);
-  void     (* select_cursor_parent)       (GtkTreeView       *tree_view);
-  void     (* start_interactive_search)   (GtkTreeView       *tree_view);
+  gboolean (* select_cursor_parent)       (GtkTreeView       *tree_view);
+  gboolean (* start_interactive_search)   (GtkTreeView       *tree_view);
 
   /* Padding for future expansion */
   void (*_gtk_reserved0) (void);
index d237feefedba2a07c4ef223c0695997e5080793a..9bfd446621352de07468aaf23c51f717dd5ab8d1 100644 (file)
@@ -3267,3 +3267,37 @@ _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
        }
     }
 }
+
+gboolean
+gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
+                                       GtkCellRenderer   *cell_renderer,
+                                       gint              *start_pos,
+                                       gint              *width)
+{
+  GList *list;
+  gint current_x = 0;
+  gboolean found_cell = FALSE;
+  GtkTreeViewColumnCellInfo *cellinfo;
+
+  list = gtk_tree_view_column_cell_first (tree_column);
+  for (; list; list = gtk_tree_view_column_cell_next (tree_column, list))
+    {
+      cellinfo = list->data;
+      if (cellinfo->cell == cell_renderer)
+        {
+          found_cell = TRUE;
+          break;
+        }
+      current_x += cellinfo->real_width;
+    }
+
+  if (found_cell)
+    {
+      if (start_pos)
+        *start_pos = current_x;
+      if (width)
+        *width = cellinfo->real_width;
+    }
+
+  return found_cell;
+}
index 863202279d17e0948d88dc06492c26096d465fb2..83caa8ad2c291cb31df57333b6fc591556880cc6 100644 (file)
@@ -222,6 +222,11 @@ void                    gtk_tree_view_column_cell_get_size       (GtkTreeViewCol
 gboolean                gtk_tree_view_column_cell_is_visible     (GtkTreeViewColumn       *tree_column);
 void                    gtk_tree_view_column_focus_cell          (GtkTreeViewColumn       *tree_column,
                                                                  GtkCellRenderer         *cell);
+gboolean                gtk_tree_view_column_cell_get_position   (GtkTreeViewColumn       *tree_column,
+                                                                 GtkCellRenderer         *cell_renderer,
+                                                                 gint                    *start_pos,
+                                                                 gint                    *width);
+
 
 #ifdef __cplusplus
 }