[gnome-documents] window: stop listening to loader signals when we get back from preview
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-documents] window: stop listening to loader signals when we get back from preview
- Date: Thu, 21 Jul 2011 00:37:11 +0000 (UTC)
commit b379636a9ed3e4da210bdc981c46d6951afc2765
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed Jul 20 20:36:18 2011 -0400
window: stop listening to loader signals when we get back from preview
src/mainWindow.js | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
---
diff --git a/src/mainWindow.js b/src/mainWindow.js
index 182ee3b..ea2fbf2 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -22,6 +22,7 @@
const EvView = imports.gi.EvinceView;
const Gd = imports.gi.Gd;
const GLib = imports.gi.GLib;
+const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
@@ -52,6 +53,7 @@ MainWindow.prototype = {
_init: function() {
this._searchTimeout = 0;
this._loaderTimeout = 0;
+ this._loaderSignal = 0;
this.window = new Gtk.Window({ type: Gtk.WindowType.TOPLEVEL,
window_position: Gtk.WindowPosition.CENTER,
@@ -168,9 +170,15 @@ MainWindow.prototype = {
},
_onViewItemActivated: function(view, uri) {
- let loader = new Gd.PdfLoader();
- loader.connect('notify::document', Lang.bind(this, this._onDocumentLoaded));
- loader.uri = uri;
+ if (this._loaderTimeout != 0) {
+ Mainloop.source_remove(this._loaderTimeout);
+ this._loaderTimeout = 0;
+ }
+
+ this._pdfLoader = new Gd.PdfLoader();
+ this._loaderSignal =
+ this._pdfLoader.connect('notify::document', Lang.bind(this, this._onDocumentLoaded));
+ this._pdfLoader.uri = uri;
this._loaderTimeout = Mainloop.timeout_add(_PDF_LOADER_TIMEOUT,
Lang.bind(this, this._onPdfLoaderTimeout));
@@ -191,6 +199,9 @@ MainWindow.prototype = {
let document = loader.document;
let model = EvView.DocumentModel.new_with_document(document);
+ this._pdfLoader = null;
+ this._loaderSignal = 0;
+
if (this._loaderTimeout) {
Mainloop.source_remove(this._loaderTimeout);
this._loaderTimeout = 0;
@@ -203,6 +214,12 @@ MainWindow.prototype = {
},
_onToolbarBackClicked: function() {
+ if (this._pdfLoader && this._loaderSignal) {
+ this._pdfLoader.disconnect(this._loaderSignal);
+ this._loaderSignal = 0;
+ this._pdfLoader = null;
+ }
+
if (this._preview)
this._preview.destroy();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]