aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardinfo2/shell.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c
index bbe14dbb..a4059d06 100644
--- a/hardinfo2/shell.c
+++ b/hardinfo2/shell.c
@@ -608,9 +608,11 @@ static gboolean update_field(gpointer data)
fu = (ShellFieldUpdate *) data;
g_return_val_if_fail(fu != NULL, FALSE);
+ DEBUG("update_field [%s]", fu->field_name);
+
iter = g_hash_table_lookup(update_tbl, fu->field_name);
g_return_val_if_fail(iter != NULL, FALSE);
-
+
/* if the entry is still selected, update it */
if (iter && fu->entry->selected && fu->entry->fieldfunc) {
GtkTreeStore *store = GTK_TREE_STORE(shell->info->model);
@@ -643,8 +645,6 @@ static gboolean update_field(gpointer data)
update_sfusrc = NULL;
}
- DEBUG("destroying ShellFieldUpdate for field %s", fu->field_name);
-
/* otherwise, cleanup and destroy the timeout */
g_free(fu->field_name);
g_free(fu);
@@ -661,6 +661,9 @@ static gboolean reload_section(gpointer data)
GtkTreePath *path = NULL;
GtkTreeIter iter;
+ /* avoid drawing the window while we reload */
+ gdk_window_freeze_updates(shell->window->window);
+
/* gets the current selected path */
if (gtk_tree_selection_get_selected
(shell->info->selection, &shell->info->model, &iter))
@@ -678,6 +681,9 @@ static gboolean reload_section(gpointer data)
FALSE);
gtk_tree_path_free(path);
}
+
+ /* make the window drawable again */
+ gdk_window_thaw_updates(shell->window->window);
}
/* destroy the timeout: it'll be set up again */