[kupfer] browser: Print "Waiting (..)" message at exit only when waiting
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer] browser: Print "Waiting (..)" message at exit only when waiting
- Date: Sun, 23 Aug 2009 11:28:25 +0000 (UTC)
commit 38932a5bee6e70d76e432ef50eea8533d172ddf6
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Sun Aug 23 00:41:40 2009 +0200
browser: Print "Waiting (..)" message at exit only when waiting
Refactor quitting slightly; run main iterations until window is
closed, then save everything, run 100 main iterations to try to finish
everything, and if events are still waiting, print the "Waiting.."
message.
kupfer/browser.py | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/kupfer/browser.py b/kupfer/browser.py
index 7b873cf..83c1438 100644
--- a/kupfer/browser.py
+++ b/kupfer/browser.py
@@ -1340,16 +1340,18 @@ class WindowController (pretty.OutputMixin):
client.connect("save-yourself", self._session_save)
client.connect("die", self._session_die)
- try:
- gtk.main()
- # put away window *before exiting further*
- self.put_away()
- max_events = 100
+ def main_iterations(max_events=0):
# use sentinel form of iter
for idx, pending in enumerate(iter(gtk.events_pending, False)):
- if idx > max_events:
+ if max_events and idx > max_events:
break
gtk.main_iteration()
+
+ try:
+ gtk.main()
+ # put away window *before exiting further*
+ self.put_away()
+ main_iterations(10)
except KeyboardInterrupt, info:
self.output_info(info, "exiting.. (Warning: Ctrl-C in the shell",
"will kill child processes)")
@@ -1358,8 +1360,9 @@ class WindowController (pretty.OutputMixin):
# Now dismantle everything but keep hanging
listen.Unregister()
- keybindings.bind_key("")
+ keybindings.bind_key(None)
+ main_iterations(100)
+ # if we are still waiting, print a message
if gtk.events_pending():
self.output_info("Waiting for tasks to finish...")
- while gtk.events_pending():
- gtk.main_iteration()
+ main_iterations()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]