Desktop slowness issue - freeze break request



On some X servers the desktop refresh is for some reason extremely slow.
We're not sure exactly why, but its clear that excessive redraw of the
whole desktop on focus in/out is aggravating this problem. See 
http://bugzilla.gnome.org/show_bug.cgi?id=314616 for some descriontions.

The patch to fix this is pretty simple:

diff -Nurp libnautilus-private/nautilus-icon-container.c libnautilus-private/nautilus-icon-container.c
--- libnautilus-private/nautilus-icon-container.c	2005-08-23 00:18:43.000000000 +0200
+++ libnautilus-private/nautilus-icon-container.c	2005-08-29 22:26:55.000000000 +0200
@@ -4350,7 +4350,6 @@ static gboolean
 handle_focus_in_event (GtkWidget *widget, GdkEventFocus *event, gpointer user_data)
 {
 	update_selected (NAUTILUS_ICON_CONTAINER (widget));
-	gtk_widget_queue_draw (widget);
 
 	return FALSE;
 }
@@ -4362,7 +4361,6 @@ handle_focus_out_event (GtkWidget *widge
 	end_renaming_mode (NAUTILUS_ICON_CONTAINER (widget), TRUE);
 	
 	update_selected (NAUTILUS_ICON_CONTAINER (widget));
-	gtk_widget_queue_draw (widget);
 
 	return FALSE;
 }

I argue in the bug why the omission of these redraws is safe, but even
if you don't believe that such a change can at most cause redraw issues
which are not very serious.

This patch probably doesn't remove all the slowdowns caused by this
apparent X slowness issue, but it at least makes it better by limiting
its scope. And it should help everyone, since these desktop redraws are
just generally a waste of time, even on systems where its not very slow.

Is this ok to commit?

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's a genetically engineered drug-addicted gentleman spy looking for a cure 
to the poison coursing through his veins. She's a provocative blonde mercenary 
with only herself to blame. They fight crime! 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]