summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--ChangeLog.pre-2-015
-rw-r--r--ChangeLog.pre-2-1015
-rw-r--r--ChangeLog.pre-2-215
-rw-r--r--ChangeLog.pre-2-415
-rw-r--r--ChangeLog.pre-2-615
-rw-r--r--ChangeLog.pre-2-815
-rw-r--r--demos/gtk-demo/appwindow.c15
-rw-r--r--docs/reference/ChangeLog4
-rw-r--r--docs/reference/gdk/tmpl/gdk-unused.sgml7
-rw-r--r--docs/reference/gdk/tmpl/properties.sgml7
-rw-r--r--docs/reference/gdk/tmpl/selections.sgml30
-rw-r--r--docs/reference/gdk/tmpl/visuals.sgml19
-rw-r--r--docs/reference/gdk/tmpl/x_interaction.sgml41
-rw-r--r--docs/reference/gtk/gtk-docs.sgml6
-rw-r--r--docs/reference/gtk/tmpl/gtk-unused.sgml50
-rw-r--r--docs/reference/gtk/tmpl/gtkcelleditable.sgml57
-rw-r--r--docs/reference/gtk/tmpl/gtkdnd.sgml2
-rw-r--r--docs/reference/gtk/tmpl/gtkscrolledwindow.sgml2
-rw-r--r--docs/reference/gtk/tmpl/gtktreemodelsort.sgml41
-rw-r--r--docs/reference/gtk/tmpl/gtktreesortable.sgml108
-rw-r--r--gdk/x11/gdkgeometry-x11.c17
-rw-r--r--gtk/gtktreemodelsort.c10
-rw-r--r--gtk/gtktreeprivate.h3
-rw-r--r--gtk/gtktreeview.c126
-rw-r--r--tests/testtreesort.c1
26 files changed, 456 insertions, 195 deletions
diff --git a/ChangeLog b/ChangeLog
index 6dada401a..5a8453797 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 6dada401a..5a8453797 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+ * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+ system. Instead of having a window the size of the tree, we have
+ a window the size of widget->allocation, and simply draw with the
+ offset.
+ (coords_are_over_arrow): ditto. Move to window coordinates.
+ (do_prelight): ditto
+ (do_unprelight): ditto
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+ Minor fix from Kristian Rietveld to fix unsorted case.
+
2001-10-22 jacob berkman <jacob@ximian.com>
* gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
diff --git a/demos/gtk-demo/appwindow.c b/demos/gtk-demo/appwindow.c
index 1b5df0750..89b517c07 100644
--- a/demos/gtk-demo/appwindow.c
+++ b/demos/gtk-demo/appwindow.c
@@ -181,8 +181,6 @@ do_appwindow (void)
if (!window)
{
GtkWidget *table;
- GtkWidget *menubar_handle;
- GtkWidget *toolbar_handle;
GtkWidget *toolbar;
GtkWidget *statusbar;
GtkWidget *contents;
@@ -215,8 +213,6 @@ do_appwindow (void)
gtk_accel_group_attach (accel_group, G_OBJECT (window));
gtk_accel_group_unref (accel_group);
- menubar_handle = gtk_handle_box_new ();
-
item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
/* Set up item factory to go away with the window */
@@ -231,11 +227,8 @@ do_appwindow (void)
gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
menu_items, window);
- gtk_container_add (GTK_CONTAINER (menubar_handle),
- gtk_item_factory_get_widget (item_factory, "<main>"));
-
gtk_table_attach (GTK_TABLE (table),
- menubar_handle,
+ gtk_item_factory_get_widget (item_factory, "<main>"),
/* X direction */ /* Y direction */
0, 1, 0, 1,
GTK_EXPAND | GTK_FILL, 0,
@@ -243,8 +236,6 @@ do_appwindow (void)
/* Create the toolbar
*/
- toolbar_handle = gtk_handle_box_new ();
-
toolbar = gtk_toolbar_new ();
gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
@@ -273,10 +264,8 @@ do_appwindow (void)
window, /* user data for callback */
-1); /* -1 means "append" */
- gtk_container_add (GTK_CONTAINER (toolbar_handle), toolbar);
-
gtk_table_attach (GTK_TABLE (table),
- toolbar_handle,
+ toolbar,
/* X direction */ /* Y direction */
0, 1, 1, 2,
GTK_EXPAND | GTK_FILL, 0,
diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog
index e77e8ee37..c1d102cab 100644
--- a/docs/reference/ChangeLog
+++ b/docs/reference/ChangeLog
@@ -1,3 +1,7 @@
+Thu Oct 18 16:40:00 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtk-docs.sgml: add GtkCellEditable and GtkTreeModelSort.
+
Sat Oct 20 18:35:21 2001 Owen Taylor <otaylor@redhat.com>
* gtk/tmpl/gtkentry.sgml (Note): Remove note about
diff --git a/docs/reference/gdk/tmpl/gdk-unused.sgml b/docs/reference/gdk/tmpl/gdk-unused.sgml
index 7311ec15d..3f1d09e23 100644
--- a/docs/reference/gdk/tmpl/gdk-unused.sgml
+++ b/docs/reference/gdk/tmpl/gdk-unused.sgml
@@ -165,6 +165,13 @@ the device ID for the core pointer device.
</para>
+<!-- ##### TYPEDEF GdkAtom ##### -->
+<para>
+A numeric type representing a string as an index into a table
+of strings on the X server.
+</para>
+
+
<!-- ##### STRUCT GdkColorContext ##### -->
<para>
diff --git a/docs/reference/gdk/tmpl/properties.sgml b/docs/reference/gdk/tmpl/properties.sgml
index d2bbbc0d9..370175cf6 100644
--- a/docs/reference/gdk/tmpl/properties.sgml
+++ b/docs/reference/gdk/tmpl/properties.sgml
@@ -42,13 +42,6 @@ data commonly stored in X window properties.
</para>
-<!-- ##### TYPEDEF GdkAtom ##### -->
-<para>
-A numeric type representing a string as an index into a table
-of strings on the X server.
-</para>
-
-
<!-- ##### MACRO GDK_NONE ##### -->
<para>
A null value for #GdkAtom, used in a similar way as <literal>None</literal>
diff --git a/docs/reference/gdk/tmpl/selections.sgml b/docs/reference/gdk/tmpl/selections.sgml
index fbcde204a..efc8ca1f9 100644
--- a/docs/reference/gdk/tmpl/selections.sgml
+++ b/docs/reference/gdk/tmpl/selections.sgml
@@ -47,19 +47,14 @@ to the X Inter-client Communication Conventions Manual
</para>
-<!-- ##### ENUM GdkSelection ##### -->
+<!-- ##### TYPEDEF GdkSelection ##### -->
<para>
The #GdkSelection enumeration contains predefined
atom values for several common selections.
</para>
-@GDK_SELECTION_PRIMARY: The primary X selection. Programs
-typically claim this selection when the user
-selects text and paste its contents in response
-to a middle button press.
-@GDK_SELECTION_SECONDARY: An additional X selection.
-<!-- ##### ENUM GdkSelectionType ##### -->
+<!-- ##### TYPEDEF GdkSelectionType ##### -->
<para>
The #GdkSelectionType enumeration contains predefined
atom values used to represent the types of data transferred
@@ -71,18 +66,8 @@ types for this purpose. However, supporting these types
may be useful for compatibility with older programs.
</para>
-@GDK_SELECTION_TYPE_ATOM: An atom. (format 32)
-@GDK_SELECTION_TYPE_BITMAP: A bitmap ID. (format 32)
-@GDK_SELECTION_TYPE_COLORMAP: A colormap ID. (format 32)
-@GDK_SELECTION_TYPE_DRAWABLE: A drawable ID. (format 32)
-@GDK_SELECTION_TYPE_INTEGER: An integer. (format 32)
-@GDK_SELECTION_TYPE_PIXMAP: A pixmap ID. (format 32)
-@GDK_SELECTION_TYPE_WINDOW: A window ID. (format 32)
-@GDK_SELECTION_TYPE_STRING: A string encoded
- in ISO Latin-1. (With the additional of <symbol>TAB</symbol>
- and <symbol>NEWLINE</symbol>.) (format 8)
-
-<!-- ##### ENUM GdkTarget ##### -->
+
+<!-- ##### TYPEDEF GdkTarget ##### -->
<para>
The #GdkTarget enumeration contains predefined atom values which are
used to describe possible targets for a selection. Other atoms can be
@@ -91,13 +76,6 @@ for this purpose. However, supporting these types may be useful for
compatibility with older programs.
</para>
-@GDK_TARGET_BITMAP: A bitmap ID.
-@GDK_TARGET_COLORMAP: A colormap ID.
-@GDK_TARGET_DRAWABLE: A drawable ID.
-@GDK_TARGET_PIXMAP: A pixmap ID.
-@GDK_TARGET_STRING: A string encoded in ISO Latin-1.
- (With the additional of <symbol>TAB</symbol>
- and <symbol>NEWLINE</symbol>.)
<!-- ##### FUNCTION gdk_selection_owner_set ##### -->
<para>
diff --git a/docs/reference/gdk/tmpl/visuals.sgml b/docs/reference/gdk/tmpl/visuals.sgml
index 559c01582..028c1ec21 100644
--- a/docs/reference/gdk/tmpl/visuals.sgml
+++ b/docs/reference/gdk/tmpl/visuals.sgml
@@ -72,7 +72,7 @@ pixel_from_rgb (GdkVisual *visual,
</figure>
@parent_instance: inherited portion from #GObject
-@type: The type of this visual.
+@type: The type of this visual.
@depth: The number of bits per pixel.
@byte_order: The byte-order for this visual.
@colormap_size: The number of entries in the colormap, for
@@ -109,7 +109,6 @@ pixel_from_rgb (GdkVisual *visual,
of the information in <structfield>blue_mask</structfield>.
@blue_prec: See above.
-
<!-- ##### ENUM GdkVisualType ##### -->
<para>
A set of values that describe the manner in which the
@@ -131,7 +130,7 @@ values for display.
structure describe how the components are assembled into a pixel value.
@GDK_VISUAL_DIRECT_COLOR: Each pixel value contains red, green, and blue
components as for %GDK_TRUE_COLOR, but the components are mapped via a
- color table into the final output table instead of being converted directly.
+ color table into the final output table instead of being converted directly.
<!-- ##### ENUM GdkByteOrder ##### -->
<para>
@@ -141,7 +140,7 @@ for storing pixel values in memory.
@GDK_LSB_FIRST: The values are stored with the least-significant byte
first. For instance, the 32-bit value 0xffeecc would be stored
- in memory as 0xcc, 0xee, 0xff, 0x00.
+ in memory as 0xcc, 0xee, 0xff, 0x00.
@GDK_MSB_FIRST: The values are stored with the most-significant byte
first. For instance, the 32-bit value 0xffeecc would be stored
in memory as 0x00, 0xcc, 0xee, 0xff.
@@ -151,7 +150,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
-@depths:
+@depths:
@count:
@@ -161,7 +160,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
@visual_types:
-@count:
+@count:
<!-- ##### FUNCTION gdk_list_visuals ##### -->
@@ -169,7 +168,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
-@Returns:
+@Returns:
<!-- ##### FUNCTION gdk_visual_get_best_depth ##### -->
@@ -177,7 +176,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
-@Returns:
+@Returns:
<!-- ##### FUNCTION gdk_visual_get_best_type ##### -->
@@ -193,7 +192,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
-@Returns:
+@Returns:
<!-- ##### FUNCTION gdk_visual_get_best ##### -->
@@ -201,7 +200,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
</para>
-@Returns:
+@Returns:
<!-- ##### FUNCTION gdk_visual_get_best_with_depth ##### -->
diff --git a/docs/reference/gdk/tmpl/x_interaction.sgml b/docs/reference/gdk/tmpl/x_interaction.sgml
index 9ac4d7f3f..36a4b64f0 100644
--- a/docs/reference/gdk/tmpl/x_interaction.sgml
+++ b/docs/reference/gdk/tmpl/x_interaction.sgml
@@ -20,12 +20,14 @@ Obtains the Xlib window id of the root window of the current screen.
</para>
+
<!-- ##### MACRO GDK_ROOT_PARENT ##### -->
<para>
Obtains the Xlib window id of the root window of the default screen.
</para>
+
<!-- ##### MACRO GDK_DISPLAY ##### -->
<para>
The current display.
@@ -48,7 +50,7 @@ Returns the display of a #GdkWindow.
Returns the X window belonging to a #GdkWindow.
</para>
-@win: a #GdkWindow.
+@win: a #GdkWindow.
@Returns: the Xlib <type>Window</type> of @win.
@@ -75,7 +77,7 @@ Returns the X pixmap belonging to a #GdkPixmap.
Returns the display of a #GdkDrawable.
</para>
-@win: a #GdkDrawable.
+@win: a #GdkDrawable.
@Returns: an Xlib <type>Display*</type>.
@@ -84,8 +86,8 @@ Returns the display of a #GdkDrawable.
Returns the X resource (window or pixmap) belonging to a #GdkDrawable.
</para>
-@win: a #GdkDrawable.
-@Returns: the ID of @win's X resource.
+@win: a #GdkDrawable.
+@Returns: the ID of @win's X resource.
<!-- ##### MACRO GDK_IMAGE_XDISPLAY ##### -->
@@ -111,7 +113,7 @@ Returns the X image belonging to a #GdkImage.
Returns the display of a #GdkGC.
</para>
-@gc: a #GdkGC.
+@gc: a #GdkGC.
@Returns: an Xlib <type>Display*</type>.
@@ -120,7 +122,7 @@ Returns the display of a #GdkGC.
Returns the display of a #GdkColormap.
</para>
-@cmap: a #GdkColormap.
+@cmap: a #GdkColormap.
@Returns: an Xlib <type>Display*</type>.
@@ -129,7 +131,7 @@ Returns the display of a #GdkColormap.
Returns the X colormap belonging to a #GdkColormap.
</para>
-@cmap: a #GdkColormap.
+@cmap: a #GdkColormap.
@Returns: an Xlib <type>Colormap</type>.
@@ -166,7 +168,7 @@ Returns the X cursor belonging to a #GdkCursor.
</para>
@cursor: a #GdkCursor.
-@Returns: an Xlib <type>Cursor</type.
+@Returns: an Xlib <type>Cursor</type.
<!-- ##### MACRO GDK_CURSOR_XDISPLAY ##### -->
@@ -213,8 +215,8 @@ Another name for GDK_DRAWABLE_XID().
Returns a #GdkVisual corresponding to a X visual.
</para>
-@xvisualid: a X visual id.
-@Returns: the #GdkVisual.
+@xvisualid: a X visual id.
+@Returns: the #GdkVisual.
<!-- ##### FUNCTION gdkx_colormap_get ##### -->
@@ -254,21 +256,27 @@ Returns the Gdk object associated with the given X id.
a #GdkWindow or a #GdkFont.
-<!-- ##### MACRO gdk_window_lookup ##### -->
+<!-- ##### FUNCTION gdk_window_lookup ##### -->
<para>
Obtains the #GdkWindow for the given Xlib window ID, or %NULL if no #GdkWindow has
been created for @xid.
</para>
+@anid:
+@Returns:
+<!-- # Unused Parameters # -->
@xid: Xlib window ID
-<!-- ##### MACRO gdk_pixmap_lookup ##### -->
+<!-- ##### FUNCTION gdk_pixmap_lookup ##### -->
<para>
Obtains the #GdkPixmap for the given Xlib pixmap ID, or %NULL if no #GdkPixmap has
been created for @xid.
</para>
+@anid:
+@Returns:
+<!-- # Unused Parameters # -->
@xid: Xlib pixmap ID
@@ -323,6 +331,8 @@ Returns the X cursor belonging to a #GdkCursor.
</para>
@cursor: a #GdkCursor.
+@Returns:
+<!-- # Unused Parameters # -->
@Retursn: an Xlib <type>Cursor</type.
@@ -385,7 +395,7 @@ Returns the X font belonging to a #GdkFont.
Returns the display of a #GdkGC.
</para>
-@gc: a #GdkGC.
+@gc: a #GdkGC.
@Returns: an Xlib <type>Display*</type>.
@@ -435,13 +445,16 @@ gdk_x11_grab_server()/gdk_x11_ungrab_server() calls can be nested.
</para>
+
<!-- ##### FUNCTION gdk_x11_image_get_xdisplay ##### -->
<para>
Returns the display of a #GdkImage.
</para>
-@drawable: a #GdkImage.
+@image:
@Returns: an Xlib <type>Display*</type>.
+<!-- # Unused Parameters # -->
+@drawable: a #GdkImage.
<!-- ##### FUNCTION gdk_x11_image_get_ximage ##### -->
diff --git a/docs/reference/gtk/gtk-docs.sgml b/docs/reference/gtk/gtk-docs.sgml
index e03dec6ff..fd0c2acdb 100644
--- a/docs/reference/gtk/gtk-docs.sgml
+++ b/docs/reference/gtk/gtk-docs.sgml
@@ -96,12 +96,14 @@
<!entity GtkTree SYSTEM "sgml/gtktree.sgml">
<!entity GtkTreeItem SYSTEM "sgml/gtktreeitem.sgml">
<!entity gtk-GtkTreeModel SYSTEM "sgml/gtktreemodel.sgml">
+<!entity gtk-GtkTreeSortable SYSTEM "sgml/gtktreesortable.sgml">
<!entity gtk-GtkTreeModelSort SYSTEM "sgml/gtktreemodelsort.sgml">
<!entity gtk-GtkTreeSelection SYSTEM "sgml/gtktreeselection.sgml">
<!entity gtk-GtkTreeStore SYSTEM "sgml/gtktreestore.sgml">
<!entity gtk-GtkTreeViewColumn SYSTEM "sgml/gtktreeviewcolumn.sgml">
<!entity gtk-GtkTreeView SYSTEM "sgml/gtktreeview.sgml">
<!entity gtk-GtkCellRenderer SYSTEM "sgml/gtkcellrenderer.sgml">
+<!entity gtk-GtkCellEditable SYSTEM "sgml/gtkcelleditable.sgml">
<!entity gtk-GtkCellRendererPixbuf SYSTEM "sgml/gtkcellrendererpixbuf.sgml">
<!entity gtk-GtkCellRendererText SYSTEM "sgml/gtkcellrenderertext.sgml">
<!entity gtk-GtkCellRendererToggle SYSTEM "sgml/gtkcellrenderertoggle.sgml">
@@ -324,16 +326,18 @@ that is, GUI components such as #GtkButton or #GtkTextView.
&gtk-TreeWidget;
&gtk-GtkTreeModel;
&gtk-GtkTreeSelection;
- &gtk-GtkTreeStore;
&gtk-GtkTreeViewColumn;
&gtk-GtkTreeView;
&gtk-GtkTreeDND;
+ &gtk-GtkTreeSortable;
&gtk-GtkTreeModelSort;
&gtk-GtkCellRenderer;
+ &gtk-GtkCellEditable;
&gtk-GtkCellRendererPixbuf;
&gtk-GtkCellRendererText;
&gtk-GtkCellRendererToggle;
&gtk-GtkListStore;
+ &gtk-GtkTreeStore;
</sect1>
<sect1 id="MenusAndCombos">
<title>Menus, Combo Box, Toolbar</title>
diff --git a/docs/reference/gtk/tmpl/gtk-unused.sgml b/docs/reference/gtk/tmpl/gtk-unused.sgml
index 53236811d..7a1385984 100644
--- a/docs/reference/gtk/tmpl/gtk-unused.sgml
+++ b/docs/reference/gtk/tmpl/gtk-unused.sgml
@@ -101,10 +101,6 @@ Debugging
gtkenums.sgml
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Title ##### -->
-GtkIMContextSimple
-
-
<!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Long_Description ##### -->
<refsect2>
<title>What are Signal Marshallers?</title>
@@ -789,17 +785,6 @@ the #GtkAdjustment which sets the range of the scale.
</para>
-<!-- ##### STRUCT GtkIMContextSimple ##### -->
-<para>
-
-</para>
-
-@object:
-@tables:
-@compose_buffer:
-@tentative_match:
-@tentative_match_len:
-
<!-- ##### USER_FUNCTION GtkImageLoader ##### -->
<para>
A GtkImageLoader is used to load a filename found in
@@ -2523,6 +2508,32 @@ a gtk_object_unref().
@tree_model:
@iter:
+<!-- ##### FUNCTION gtk_tree_model_sort_convert_iter ##### -->
+<para>
+
+</para>
+
+@tree_model_sort:
+@sort_iter:
+@child_iter:
+
+<!-- ##### FUNCTION gtk_tree_model_sort_convert_path ##### -->
+<para>
+
+</para>
+
+@tree_model_sort:
+@child_path:
+@Returns:
+@path:
+
+<!-- ##### FUNCTION gtk_tree_model_sort_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
<!-- ##### FUNCTION gtk_tree_model_sort_set_compare ##### -->
<para>
@@ -2531,6 +2542,15 @@ a gtk_object_unref().
@tree_model_sort:
@func:
+<!-- ##### FUNCTION gtk_tree_model_sort_set_model ##### -->
+<para>
+
+</para>
+
+@tree_model_sort:
+@child_model:
+@model:
+
<!-- ##### FUNCTION gtk_tree_model_sort_set_sort_column ##### -->
<para>
diff --git a/docs/reference/gtk/tmpl/gtkcelleditable.sgml b/docs/reference/gtk/tmpl/gtkcelleditable.sgml
new file mode 100644
index 000000000..b15e63396
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkcelleditable.sgml
@@ -0,0 +1,57 @@
+<!-- ##### SECTION Title ##### -->
+gtkcelleditable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GtkCellEditable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GtkCellEditableIface ##### -->
+<para>
+
+</para>
+
+@g_iface:
+@editing_done:
+@remove_widget:
+@start_editing:
+
+<!-- ##### FUNCTION gtk_cell_editable_start_editing ##### -->
+<para>
+
+</para>
+
+@cell_editable:
+@event:
+
+
+<!-- ##### FUNCTION gtk_cell_editable_editing_done ##### -->
+<para>
+
+</para>
+
+@cell_editable:
+
+
+<!-- ##### FUNCTION gtk_cell_editable_remove_widget ##### -->
+<para>
+
+</para>
+
+@cell_editable:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkdnd.sgml b/docs/reference/gtk/tmpl/gtkdnd.sgml
index 5d860b9fe..281e88870 100644
--- a/docs/reference/gtk/tmpl/gtkdnd.sgml
+++ b/docs/reference/gtk/tmpl/gtkdnd.sgml
@@ -258,7 +258,7 @@ gtk_drag_source_set() is used.
drag.
@button: The button the user clicked to start the drag.
@event: The event that triggered the start of the
- drag.
+ drag.
@Returns: The context for this drag.
diff --git a/docs/reference/gtk/tmpl/gtkscrolledwindow.sgml b/docs/reference/gtk/tmpl/gtkscrolledwindow.sgml
index f7093de2c..62de37814 100644
--- a/docs/reference/gtk/tmpl/gtkscrolledwindow.sgml
+++ b/docs/reference/gtk/tmpl/gtkscrolledwindow.sgml
@@ -192,6 +192,8 @@ Sets the #GtkAdjustment for the vertical scrollbar.
</para>
@scrolled_window: A #GtkScrolledWindow.
+@hadjustment:
+<!-- # Unused Parameters # -->
@vadjustment: Vertical scroll adjustment.
diff --git a/docs/reference/gtk/tmpl/gtktreemodelsort.sgml b/docs/reference/gtk/tmpl/gtktreemodelsort.sgml
index d8a3fd421..8cc1233dc 100644
--- a/docs/reference/gtk/tmpl/gtktreemodelsort.sgml
+++ b/docs/reference/gtk/tmpl/gtktreemodelsort.sgml
@@ -14,14 +14,6 @@ GtkTreeModelSort
</para>
-<!-- ##### FUNCTION gtk_tree_model_sort_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
<!-- ##### FUNCTION gtk_tree_model_sort_new_with_model ##### -->
<para>
@@ -35,17 +27,6 @@ GtkTreeModelSort
@model:
-<!-- ##### FUNCTION gtk_tree_model_sort_set_model ##### -->
-<para>
-
-</para>
-
-@tree_model_sort:
-@child_model:
-<!-- # Unused Parameters # -->
-@model:
-
-
<!-- ##### FUNCTION gtk_tree_model_sort_get_model ##### -->
<para>
@@ -55,25 +36,3 @@ GtkTreeModelSort
@Returns:
-<!-- ##### FUNCTION gtk_tree_model_sort_convert_path ##### -->
-<para>
-
-</para>
-
-@tree_model_sort:
-@child_path:
-@Returns:
-<!-- # Unused Parameters # -->
-@path:
-
-
-<!-- ##### FUNCTION gtk_tree_model_sort_convert_iter ##### -->
-<para>
-
-</para>
-
-@tree_model_sort:
-@sort_iter:
-@child_iter:
-
-
diff --git a/docs/reference/gtk/tmpl/gtktreesortable.sgml b/docs/reference/gtk/tmpl/gtktreesortable.sgml
new file mode 100644
index 000000000..4bb1c357c
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtktreesortable.sgml
@@ -0,0 +1,108 @@
+<!-- ##### SECTION Title ##### -->
+gtktreesortable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GtkTreeSortable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GtkTreeSortableIface ##### -->
+<para>
+
+</para>
+
+@g_iface:
+@sort_column_changed:
+@get_sort_column_id:
+@set_sort_column_id:
+@set_sort_func:
+@set_default_sort_func:
+@has_default_sort_func:
+
+<!-- ##### USER_FUNCTION GtkTreeIterCompareFunc ##### -->
+<para>
+
+</para>
+
+@model:
+@a:
+@b:
+@user_data:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_sort_column_changed ##### -->
+<para>
+
+</para>
+
+@sortable:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_get_sort_column_id ##### -->
+<para>
+
+</para>
+
+@sortable:
+@sort_column_id:
+@order:
+@Returns:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_sort_column_id ##### -->
+<para>
+
+</para>
+
+@sortable:
+@sort_column_id:
+@order:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable:
+@sort_column_id:
+@sort_func:
+@user_data:
+@destroy:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_default_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable:
+@sort_func:
+@user_data:
+@destroy:
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_has_default_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable:
+@Returns:
+
+
diff --git a/gdk/x11/gdkgeometry-x11.c b/gdk/x11/gdkgeometry-x11.c
index 28e10fc56..64fc00f03 100644
--- a/gdk/x11/gdkgeometry-x11.c
+++ b/gdk/x11/gdkgeometry-x11.c
@@ -116,15 +116,14 @@ _gdk_window_init_position (GdkWindow *window)
* @dx: Amount to scroll in the X direction
* @dy: Amount to scroll in the Y direction
*
- * Scroll the contents of its window, both pixels and children, by
- * the given amount. Portions of the window that the scroll operation
- * brings in from offscreen areas are invalidated. The invalidated
- * region may be bigger than what would strictly be necessary.
- * (For X11, a minimum area will be invalidated if the window has
- * no subwindows, or if the edges of the window's parent do not extend
- * beyond the edges of the window. In other cases, a multi-step process
- * is used to scroll the window which may produce temporary visual
- * artifacts and unnecessary invalidations.)
+ * Scroll the contents of @window, both pixels and children, by the given
+ * amount. @window itself does not move. Portions of the window that the scroll
+ * operation brings in from offscreen areas are invalidated. The invalidated
+ * region may be bigger than what would strictly be necessary. (For X11, a
+ * minimum area will be invalidated if the window has no subwindows, or if the
+ * edges of the window's parent do not extend beyond the edges of the window. In
+ * other cases, a multi-step process is used to scroll the window which may
+ * produce temporary visual artifacts and unnecessary invalidations.)
**/
void
gdk_window_scroll (GdkWindow *window,
diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c
index 8f9e82031..ab02c2709 100644
--- a/gtk/gtktreemodelsort.c
+++ b/gtk/gtktreemodelsort.c
@@ -731,7 +731,15 @@ gtk_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
}
for (i = 0; i < level->array->len; i++)
- g_array_index (level->array, SortElt, i).offset = new_order[i];
+ {
+ g_array_index (level->array, SortElt, i).offset = new_order[i];
+
+ if (GTK_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+ {
+ get_child_iter_from_elt_no_cache (tree_model_sort,
+ &(g_array_index (level->array, SortElt, i).iter), level, &g_array_index (level->array, SortElt, i));
+ }
+ }
gtk_tree_model_sort_increment_stamp (tree_model_sort);
diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h
index 5ffedf56e..e6aae56b3 100644
--- a/gtk/gtktreeprivate.h
+++ b/gtk/gtktreeprivate.h
@@ -102,6 +102,9 @@ struct _GtkTreeViewPrivate
GdkWindow *drag_window;
GdkWindow *drag_highlight_window;
GtkTreeViewColumn *drag_column;
+
+ /* bin_window offset */
+ gint dy;
gint drag_column_x;
GtkTreeViewColumn *expander_column;
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 7add0e79f..c56262511 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -48,14 +48,16 @@
* The "cell" areas are the cell_area passed in to gtk_cell_renderer_render(),
* i.e. just the cells, no spacing.
*/
-#define BACKGROUND_FIRST_PIXEL(tree_view,tree,node) (_gtk_rbtree_node_find_offset ((tree), (node)) + TREE_VIEW_HEADER_HEIGHT ((tree_view)))
-#define CELL_FIRST_PIXEL(tree_view,tree,node,separator) (BACKGROUND_FIRST_PIXEL (tree_view,tree,node) + separator/2)
#define BACKGROUND_HEIGHT(node) (GTK_RBNODE_GET_HEIGHT (node))
#define CELL_HEIGHT(node, separator) (BACKGROUND_HEIGHT (node) - separator);
-#define TREE_WINDOW_Y_TO_RBTREE_Y(tree_view,y) ((y) - TREE_VIEW_HEADER_HEIGHT (tree_view))
-#define RBTREE_Y_TO_TREE_WINDOW_Y(tree_view,y) ((y) + TREE_VIEW_HEADER_HEIGHT (tree_view))
+#define TREE_WINDOW_Y_TO_RBTREE_Y(tree_view,y) ((y) - TREE_VIEW_HEADER_HEIGHT (tree_view) + tree_view->priv->dy)
+#define RBTREE_Y_TO_TREE_WINDOW_Y(tree_view,y) ((y) + TREE_VIEW_HEADER_HEIGHT (tree_view) - tree_view->priv->dy)
+
+/* This is in Window coordinates */
+#define BACKGROUND_FIRST_PIXEL(tree_view,tree,node) (RBTREE_Y_TO_TREE_WINDOW_Y (tree_view, _gtk_rbtree_node_find_offset ((tree), (node))))
+#define CELL_FIRST_PIXEL(tree_view,tree,node,separator) (BACKGROUND_FIRST_PIXEL (tree_view,tree,node) + separator/2)
typedef struct _GtkTreeViewChild GtkTreeViewChild;
@@ -862,7 +864,7 @@ gtk_tree_view_init (GtkTreeView *tree_view)
/* We need some padding */
tree_view->priv->tab_offset += EXPANDER_EXTRA_PADDING;
-
+ tree_view->priv->dy = 0;
tree_view->priv->n_columns = 0;
tree_view->priv->header_height = 1;
tree_view->priv->x_drag = 0;
@@ -1195,7 +1197,7 @@ gtk_tree_view_realize (GtkWidget *widget)
attributes.x = 0;
attributes.y = 0;
attributes.width = tree_view->priv->width;
- attributes.height = tree_view->priv->height + TREE_VIEW_HEADER_HEIGHT (tree_view);
+ attributes.height = widget->allocation.height;
attributes.event_mask = GDK_EXPOSURE_MASK |
GDK_SCROLL_MASK |
GDK_POINTER_MOTION_MASK |
@@ -1463,11 +1465,9 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
gdk_window_resize (tree_view->priv->header_window,
MAX (tree_view->priv->width, allocation->width),
tree_view->priv->header_height);
- if (tree_view->priv->width < allocation->width)
- gdk_window_resize (tree_view->priv->bin_window,
- allocation->width,
- tree_view->priv->height + TREE_VIEW_HEADER_HEIGHT (tree_view));
-
+ gdk_window_resize (tree_view->priv->bin_window,
+ tree_view->priv->width,
+ allocation->height);
_gtk_tree_view_update_col_width (tree_view);
}
@@ -1481,7 +1481,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
if (tree_view->priv->hadjustment->value + allocation->width > tree_view->priv->width)
tree_view->priv->hadjustment->value = MAX (tree_view->priv->width - allocation->width, 0);
- gtk_signal_emit_by_name (GTK_OBJECT (tree_view->priv->hadjustment), "changed");
+ gtk_adjustment_changed (tree_view->priv->hadjustment);
tree_view->priv->vadjustment->page_size = allocation->height - TREE_VIEW_HEADER_HEIGHT (tree_view);
tree_view->priv->vadjustment->step_increment = (tree_view->priv->vadjustment->page_size) / 10;
@@ -1492,8 +1492,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
if (tree_view->priv->vadjustment->value + allocation->height > tree_view->priv->height)
gtk_adjustment_set_value (tree_view->priv->vadjustment,
MAX (tree_view->priv->height - allocation->height, 0));
-
- gtk_signal_emit_by_name (GTK_OBJECT (tree_view->priv->vadjustment), "changed");
+ gtk_adjustment_changed (tree_view->priv->vadjustment);
if (tree_view->priv->scroll_to_path != NULL ||
tree_view->priv->scroll_to_column != NULL)
@@ -1572,11 +1571,10 @@ gtk_tree_view_button_press (GtkWidget *widget,
}
/* find the node that was clicked */
- new_y = ((gint) event->y < TREE_VIEW_HEADER_HEIGHT (tree_view)) ? TREE_VIEW_HEADER_HEIGHT (tree_view) : (gint)event->y;
- y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree,
- TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
- &tree,
- &node) + new_y - (gint)event->y;
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+ if (new_y < 0)
+ new_y = 0;
+ y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
if (node == NULL)
/* We clicked in dead space */
@@ -1881,7 +1879,7 @@ static gboolean
coords_are_over_arrow (GtkTreeView *tree_view,
GtkRBTree *tree,
GtkRBNode *node,
- /* these are in tree window coords */
+ /* these are in window coords */
gint x,
gint y)
{
@@ -1904,8 +1902,8 @@ coords_are_over_arrow (GtkTreeView *tree_view,
return (x >= arrow.x &&
x < (arrow.x + arrow.width) &&
- y >= arrow.y &&
- y < (arrow.y + arrow.height));
+ y >= arrow.y &&
+ y < (arrow.y + arrow.height));
}
static void
@@ -1945,12 +1943,14 @@ static void
do_prelight (GtkTreeView *tree_view,
GtkRBTree *tree,
GtkRBNode *node,
- /* these are in tree window coords */
+ /* these are in tree_window coords */
gint x,
gint y)
{
if (coords_are_over_arrow (tree_view, tree, node, x, y))
- GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
+ {
+ GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
+ }
tree_view->priv->prelight_node = node;
tree_view->priv->prelight_tree = tree;
@@ -2355,14 +2355,12 @@ gtk_tree_view_motion_bin_window (GtkWidget *widget,
old_prelight_tree = tree_view->priv->prelight_tree;
old_prelight_node = tree_view->priv->prelight_node;
old_arrow_prelit = GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
- do_unprelight (tree_view, event->x, event->y);
-
- new_y = ((gint)event->y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):(gint)event->y;
- _gtk_rbtree_find_offset (tree_view->priv->tree,
- TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
- &tree,
- &node);
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+ if (new_y < 0)
+ new_y = 0;
+ do_unprelight (tree_view, event->x, event->y);
+ _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
if (tree == NULL)
return TRUE;
@@ -2373,29 +2371,34 @@ gtk_tree_view_motion_bin_window (GtkWidget *widget,
return TRUE;
- do_prelight (tree_view, tree, node, event->x, new_y);
+ do_prelight (tree_view, tree, node, event->x, event->y);
if (old_prelight_node != tree_view->priv->prelight_node)
{
if (old_prelight_node)
- gtk_tree_view_queue_draw_node (tree_view,
+ {
+ gtk_tree_view_queue_draw_node (tree_view,
old_prelight_tree,
old_prelight_node,
NULL);
-
+ }
if (tree_view->priv->prelight_node)
- gtk_tree_view_queue_draw_node (tree_view,
+ {
+ gtk_tree_view_queue_draw_node (tree_view,
tree_view->priv->prelight_tree,
tree_view->priv->prelight_node,
NULL);
+ }
}
else if (old_arrow_prelit != GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_ARROW_PRELIT))
{
if (tree_view->priv->prelight_node)
- gtk_tree_view_queue_draw_node (tree_view,
- tree_view->priv->prelight_tree,
- tree_view->priv->prelight_node,
- NULL);
+ {
+ gtk_tree_view_queue_draw_node (tree_view,
+ tree_view->priv->prelight_tree,
+ tree_view->priv->prelight_node,
+ NULL);
+ }
}
return TRUE;
}
@@ -2468,16 +2471,23 @@ gtk_tree_view_bin_expose (GtkWidget *widget,
if (tree_view->priv->tree == NULL)
return TRUE;
+ /* clip event->area to the visible area */
+ if (event->area.y < TREE_VIEW_HEADER_HEIGHT (tree_view))
+ {
+ event->area.height -= (TREE_VIEW_HEADER_HEIGHT (tree_view) - event->area.y);
+ event->area.y = TREE_VIEW_HEADER_HEIGHT (tree_view);
+
+ if (event->area.height < 0)
+ return TRUE;
+ }
+
gtk_tree_view_check_dirty_and_clean (GTK_TREE_VIEW (widget));
- /* we want to account for a potential HEADER offset. That is, if the header
- * exists, we want to offset our event by its height to find the right node.
- */
- new_y = (event->area.y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):event->area.y;
- y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree,
- TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
- &tree,
- &node) + new_y - event->area.y;
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->area.y);
+ if (new_y < 0)
+ new_y = 0;
+ y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
+
if (node == NULL)
return TRUE;
@@ -2535,6 +2545,7 @@ gtk_tree_view_bin_expose (GtkWidget *widget,
background_area.y = y_offset + event->area.y;
background_area.height = max_height;
+
flags = 0;
if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PRELIT))
@@ -2652,7 +2663,6 @@ gtk_tree_view_bin_expose (GtkWidget *widget,
* level of the tree we're dropping at.
*/
highlight_x = cell_area.x;
-
gtk_tree_view_column_cell_render (column,
event->window,
&background_area,
@@ -2876,17 +2886,15 @@ gtk_tree_view_enter_notify (GtkWidget *widget,
return TRUE;
/* find the node internally */
- new_y = ((gint)event->y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):(gint)event->y;
-
- _gtk_rbtree_find_offset (tree_view->priv->tree,
- TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
- &tree,
- &node);
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+ if (new_y < 0)
+ new_y = 0;
+ _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
if (node == NULL)
return FALSE;
- do_prelight (tree_view, tree, node, event->x, new_y);
+ do_prelight (tree_view, tree, node, event->x, event->y);
if (tree_view->priv->prelight_node)
gtk_tree_view_queue_draw_node (tree_view,
@@ -2906,6 +2914,8 @@ gtk_tree_view_leave_notify (GtkWidget *widget,
g_return_val_if_fail (GTK_IS_TREE_VIEW (widget), FALSE);
+ if (event->mode == GDK_CROSSING_GRAB)
+ return TRUE;
tree_view = GTK_TREE_VIEW (widget);
if (tree_view->priv->prelight_node)
@@ -6282,12 +6292,16 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
{
if (GTK_WIDGET_REALIZED (tree_view))
{
+ gint dy;
gdk_window_move (tree_view->priv->bin_window,
- tree_view->priv->hadjustment->value,
- - tree_view->priv->vadjustment->value);
+ 0);
gdk_window_move (tree_view->priv->header_window,
- tree_view->priv->hadjustment->value,
0);
+ dy = tree_view->priv->dy - (int) tree_view->priv->vadjustment->value;
+ gdk_window_scroll (tree_view->priv->bin_window, 0, dy);
+ tree_view->priv->dy = (int) tree_view->priv->vadjustment->value;
gdk_window_process_updates (tree_view->priv->bin_window, TRUE);
gdk_window_process_updates (tree_view->priv->header_window, TRUE);
diff --git a/tests/testtreesort.c b/tests/testtreesort.c
index 2b817661d..69bceb1be 100644
--- a/tests/testtreesort.c
+++ b/tests/testtreesort.c
@@ -87,7 +87,6 @@ main (int argc, char *argv[])
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
model = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-
smodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (model));
ssmodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (smodel));