[med-svn] [SCM] aghermann branch, master, updated. 3b8a63cca9e297a548ea6094bd42a016ecec03b8
Andrei Zavada
johnhommer at gmail.com
Thu Dec 20 13:04:52 UTC 2012
The following commit has been merged in the master branch:
commit 9e2ecd108f993b78daefd9977396255cf96ec6da
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Sat Dec 15 21:15:46 2012 +0200
flush gtk both ways, depending on caller
This is gdk_window_process_all_updates() vs
while ( gtk_events_pending() ) gtk_main_iteration(); episode 34658.
diff --git a/src/ui/mw/mw-splash.cc b/src/ui/mw/mw-splash.cc
index 47f924c..01a38ef 100644
--- a/src/ui/mw/mw-splash.cc
+++ b/src/ui/mw/mw-splash.cc
@@ -46,7 +46,8 @@ download_process_child_exited_cb( VteTerminal *terminal, gpointer userdata)
"Exit status %d. Try again next time.", exit_status);
ED.dl_pid = -1;
ED.ED->scan_tree( bind (&aghui::SExpDesignUI::sb_main_progress_indicator, &ED,
- placeholders::_1, placeholders::_2, placeholders::_3));
+ placeholders::_1, placeholders::_2, placeholders::_3,
+ aghui::TGtkRefreshMode::gdk));
ED.populate( false);
}
diff --git a/src/ui/mw/mw.cc b/src/ui/mw/mw.cc
index ca5dc8b..40b01bf 100644
--- a/src/ui/mw/mw.cc
+++ b/src/ui/mw/mw.cc
@@ -212,7 +212,8 @@ SExpDesignUI (aghui::SSessionChooser *parent,
sure_dir = dir;
ED = new agh::CExpDesign (sure_dir,
bind( &SExpDesignUI::sb_main_progress_indicator, this,
- placeholders::_1, placeholders::_2, placeholders::_3));
+ placeholders::_1, placeholders::_2, placeholders::_3,
+ aghui::TGtkRefreshMode::gtk));
load_artifact_detection_profiles();
if ( global_artifact_detection_profiles.empty() )
global_artifact_detection_profiles["default"] = metrics::mc::SArtifactDetectionPP ();
@@ -409,7 +410,8 @@ do_rescan_tree( bool with_update)
ED -> sync();
if ( with_update )
ED -> scan_tree( bind (&SExpDesignUI::sb_main_progress_indicator, this,
- placeholders::_1, placeholders::_2, placeholders::_3));
+ placeholders::_1, placeholders::_2, placeholders::_3,
+ aghui::TGtkRefreshMode::gdk));
else
ED -> scan_tree();
populate( false);
@@ -538,11 +540,19 @@ buf_on_main_status_bar()
void
aghui::SExpDesignUI::
-sb_main_progress_indicator( const char* current, size_t n, size_t i)
+sb_main_progress_indicator( const char* current, size_t n, size_t i, aghui::TGtkRefreshMode mode)
{
snprintf_buf( "(%zu of %zu) %s", i, n, current);
buf_on_main_status_bar();
- gdk_window_process_all_updates();
+
+ switch ( mode ) {
+ case TGtkRefreshMode::gtk:
+ aghui::gtk_flush(); // this brings down the whole of GTK if called from a callback
+ break;
+ case TGtkRefreshMode::gdk:
+ gdk_window_process_all_updates(); // this, however, fails to do the update if called *not* from a callback
+ break;
+ }
}
diff --git a/src/ui/mw/mw.hh b/src/ui/mw/mw.hh
index 9390cf5..fb23961 100644
--- a/src/ui/mw/mw.hh
+++ b/src/ui/mw/mw.hh
@@ -309,7 +309,8 @@ class SExpDesignUI
int ctl_params0_siman_params_t_initial_exponent;
// status bar bits
- void sb_main_progress_indicator( const char*, size_t n, size_t i);
+ void sb_main_progress_indicator( const char*, size_t n, size_t i,
+ aghui::TGtkRefreshMode);
void buf_on_main_status_bar();
// dnd
diff --git a/src/ui/ui.hh b/src/ui/ui.hh
index 0f8d10c..8aed21a 100644
--- a/src/ui/ui.hh
+++ b/src/ui/ui.hh
@@ -105,6 +105,9 @@ struct SManagedColor {
};
+enum class TGtkRefreshMode {
+ gtk, gdk
+};
inline void
gtk_flush()
--
Sleep experiment manager
More information about the debian-med-commit
mailing list