[Pkg-xfce-commits] r3497 - in desktop/trunk/exo/debian: . patches
Yves-Alexis Perez
corsac at alioth.debian.org
Tue Sep 15 06:14:54 UTC 2009
Author: corsac
Date: 2009-09-15 18:14:54 +0000 (Tue, 15 Sep 2009)
New Revision: 3497
Removed:
desktop/trunk/exo/debian/patches/03_fix-scroll-with-csw.patch
Modified:
desktop/trunk/exo/debian/changelog
desktop/trunk/exo/debian/patches/series
Log:
revert patch, this has been fixed in GTK+
Modified: desktop/trunk/exo/debian/changelog
===================================================================
--- desktop/trunk/exo/debian/changelog 2009-09-11 23:04:59 UTC (rev 3496)
+++ desktop/trunk/exo/debian/changelog 2009-09-15 18:14:54 UTC (rev 3497)
@@ -1,11 +1,3 @@
-exo (0.3.102-2) UNRELEASED; urgency=low
-
- * debian/patches:
- - 03_fix-scroll-with-csw added, fix issues when using Client Side
- Windows in GTK+ 2.17+.
-
- -- Yves-Alexis Perez <corsac at debian.org> Fri, 11 Sep 2009 23:35:14 +0200
-
exo (0.3.102-1) unstable; urgency=low
* New upstream release.
Deleted: desktop/trunk/exo/debian/patches/03_fix-scroll-with-csw.patch
===================================================================
--- desktop/trunk/exo/debian/patches/03_fix-scroll-with-csw.patch 2009-09-11 23:04:59 UTC (rev 3496)
+++ desktop/trunk/exo/debian/patches/03_fix-scroll-with-csw.patch 2009-09-15 18:14:54 UTC (rev 3497)
@@ -1,160 +0,0 @@
-commit 5a90d10343f91f213cd409be6fdbb934eb3ee9c2
-Author: Jannis Pohlmann <jannis at xfce.org>
-Date: Fri Sep 11 20:10:04 2009 +0200
-
- Use an idle function for delayed scrolling.
-
- It looks like modifying the bin_window GdkWindow inside the expose
- event handler of ExoIconView does no longer work with client-side
- windows. This was done for delaying the scrolling to a certain path
- until the widget is realized and layouting is completed.
-
- As a result of using gdk_window_move() inside of the expose event
- handler, the painted icon view was not up to date or mixed up after the
- event handler had finished. Icons moved up a few pixels when hovering
- them and with scroll positions further down the view, the contents were
- painted twice (in the old and new state), resulting in overlapping
- items.
-
- This commit implements delayed scrolling via an idle function, which is
- the only way I see right now to work around this. It may cause the
- automatic scrolling to the previous file to be delayed for a very short
- time, but this shouldn't be critical.
-
- A bug was filed against GDK on
-
- http://bugzilla.gnome.org/show_bug.cgi?id=594880
-
-diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c
-index bdd6df0..e90647f 100644
---- a/exo/exo-icon-view.c
-+++ b/exo/exo-icon-view.c
-@@ -454,7 +454,8 @@ struct _ExoIconViewPrivate
- GtkAdjustment *vadjustment;
-
- gint layout_idle_id;
--
-+ gint scroll_idle_id;
-+
- gboolean doing_rubberband;
- gint rubberband_x1, rubberband_y1;
- gint rubberband_x2, rubberband_y2;
-@@ -1237,6 +1238,10 @@ exo_icon_view_finalize (GObject *object)
- if (G_UNLIKELY (icon_view->priv->single_click_timeout_id != 0))
- g_source_remove (icon_view->priv->single_click_timeout_id);
-
-+ /* kill the scroll idle source */
-+ if (G_UNLIKELY (icon_view->priv->scroll_idle_id != 0))
-+ g_source_remove (icon_view->priv->scroll_idle_id);
-+
- /* kill the layout idle source (it's important to have this last!) */
- if (G_UNLIKELY (icon_view->priv->layout_idle_id != 0))
- g_source_remove (icon_view->priv->layout_idle_id);
-@@ -1642,28 +1647,6 @@ exo_icon_view_expose_event (GtkWidget *widget,
- if (G_UNLIKELY (priv->layout_idle_id != 0))
- return FALSE;
-
-- /* scroll to the previously remembered path (if any) */
-- if (G_UNLIKELY (priv->scroll_to_path != NULL))
-- {
-- /* grab the path from the reference and invalidate the reference */
-- path = gtk_tree_row_reference_get_path (priv->scroll_to_path);
-- gtk_tree_row_reference_free (priv->scroll_to_path);
-- priv->scroll_to_path = NULL;
--
-- /* check if the reference was still valid */
-- if (G_LIKELY (path != NULL))
-- {
-- /* try to scroll again */
-- exo_icon_view_scroll_to_path (icon_view, path,
-- priv->scroll_to_use_align,
-- priv->scroll_to_row_align,
-- priv->scroll_to_col_align);
--
-- /* release the path */
-- gtk_tree_path_free (path);
-- }
-- }
--
- /* check if we need to draw a drag indicator */
- exo_icon_view_get_drag_dest_item (icon_view, &path, &dest_pos);
- if (G_UNLIKELY (path != NULL))
-@@ -5437,6 +5420,8 @@ update_text_cell (ExoIconView *icon_view)
- }
- }
-
-+
-+
- static void
- update_pixbuf_cell (ExoIconView *icon_view)
- {
-@@ -5982,6 +5967,46 @@ exo_icon_view_set_cursor (ExoIconView *icon_view,
-
-
-
-+static gboolean
-+scroll_delayed (gpointer user_data)
-+{
-+ ExoIconView *icon_view = user_data;
-+ GtkTreePath *path;
-+
-+ _exo_return_val_if_fail (EXO_IS_ICON_VIEW (icon_view), FALSE);
-+
-+ /* schedule the scrolling again if the window still isn't realized or
-+ * the layouting still is not finished */
-+ if (!GTK_WIDGET_REALIZED (GTK_WIDGET (icon_view)) || icon_view->priv->layout_idle_id != 0)
-+ return TRUE;
-+
-+ /* scroll to the previously remembered path (if any) */
-+ if (G_UNLIKELY (icon_view->priv->scroll_to_path != NULL))
-+ {
-+ /* grab the path from the reference and invalidate the reference */
-+ path = gtk_tree_row_reference_get_path (icon_view->priv->scroll_to_path);
-+ gtk_tree_row_reference_free (icon_view->priv->scroll_to_path);
-+ icon_view->priv->scroll_to_path = NULL;
-+
-+ /* check if the reference was still valid */
-+ if (G_LIKELY (path != NULL))
-+ {
-+ /* try to scroll again */
-+ exo_icon_view_scroll_to_path (icon_view, path,
-+ icon_view->priv->scroll_to_use_align,
-+ icon_view->priv->scroll_to_row_align,
-+ icon_view->priv->scroll_to_col_align);
-+
-+ /* release the path */
-+ gtk_tree_path_free (path);
-+ }
-+ }
-+
-+ return FALSE;
-+}
-+
-+
-+
- /**
- * exo_icon_view_scroll_to_path:
- * @icon_view: A #ExoIconView.
-@@ -6023,6 +6048,10 @@ exo_icon_view_scroll_to_path (ExoIconView *icon_view,
- /* Delay scrolling if either not realized or pending layout() */
- if (!GTK_WIDGET_REALIZED (icon_view) || icon_view->priv->layout_idle_id != 0)
- {
-+ /* drop previous scroll idle handler */
-+ if (G_UNLIKELY (icon_view->priv->scroll_idle_id != 0))
-+ g_source_remove (icon_view->priv->scroll_idle_id);
-+
- /* release the previous scroll_to_path reference */
- if (G_UNLIKELY (icon_view->priv->scroll_to_path != NULL))
- gtk_tree_row_reference_free (icon_view->priv->scroll_to_path);
-@@ -6032,6 +6061,11 @@ exo_icon_view_scroll_to_path (ExoIconView *icon_view,
- icon_view->priv->scroll_to_use_align = use_align;
- icon_view->priv->scroll_to_row_align = row_align;
- icon_view->priv->scroll_to_col_align = col_align;
-+
-+ /* schedule an idle handler to scroll to the given path */
-+ icon_view->priv->scroll_idle_id = g_idle_add_full (G_PRIORITY_LOW,
-+ scroll_delayed, icon_view,
-+ NULL);
- }
- else
- {
Modified: desktop/trunk/exo/debian/patches/series
===================================================================
--- desktop/trunk/exo/debian/patches/series 2009-09-11 23:04:59 UTC (rev 3496)
+++ desktop/trunk/exo/debian/patches/series 2009-09-15 18:14:54 UTC (rev 3497)
@@ -1,3 +1,2 @@
01_fix-exo-csource-manpage.patch
02_fix-exo-open-manpage.patch
-03_fix-scroll-with-csw.patch
More information about the Pkg-xfce-commits
mailing list