Hello,

here is a small patch that changes the download manager automatic buffer
opening behavior.

It adds a new preference:

download_buffer_automatic_open_in_own_window 

which defaults to false.

When true, automatic open with target being OPEN_NEW_BUFFER or
OPEN_NEW_BUFFER_BACKGROUND, the download buffer are created in a
separate download manager window. So the first time a window is created
and subsequent download buffers are opened in the existing window.

I'm new to js and xul so feel free to comment this and tell me this is
crap :).
 
Here it uses a tag for the download manager window thanks to jbms on #conkeror
(thanks for his help). 

Anyway here is the patch.
-- 

Morgan Veyret ([EMAIL PROTECTED])
http://appart.kicks-ass.net/patzy
>From 3688491e78a1e222c7d197db313edf61af298a02 Mon Sep 17 00:00:00 2001
From: Morgan Veyret <[EMAIL PROTECTED]>
Date: Sat, 20 Sep 2008 11:12:18 +0200
Subject: [PATCH] Added new download manager window automatic open behavior.

When target is set to OPEN_NEW_BUFFER or OPEN_NEW_BUFFER_BACKGROUND
the preference variable download_buffer_automatic_open_in_own_window control 
wether
an existing download manager window should be used instead of the current 
window.
---
 modules/download-manager.js |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/modules/download-manager.js b/modules/download-manager.js
index cdd9ee9..318c26d 100644
--- a/modules/download-manager.js
+++ b/modules/download-manager.js
@@ -1011,14 +1011,31 @@ 
define_variable("download_buffer_automatic_open_target", OPEN_NEW_WINDOW,
                      "This variable takes effect only if 
`open_download_buffer_auotmatically' is in " +
                      "`download_added_hook', as it is by default.");
 
+define_variable("download_buffer_automatic_open_in_own_window", false,
+                     "Target for download buffers created by the 
`open_download_buffer_automatically' function.\n" +
+                     "This variable takes effect only if 
`open_download_buffer_auotmatically' is in " +
+                     "`download_added_hook', as it is by default.");
+
+
 function open_download_buffer_automatically(info) {
     var buf = info.source_buffer;
     var target = download_buffer_automatic_open_target;
+    var own_window = download_buffer_automatic_open_in_own_window;
     if (buf == null)
-        target = OPEN_NEW_WINDOW;
+        target = OPEN_NEW_WINDOW;    
     if (info.temporary_status == DOWNLOAD_NOT_TEMPORARY ||
         !(download_temporary_file_open_buffer_delay > 0))
-        create_buffer(buf, buffer_creator(download_buffer, $info = info), 
target);
+        if ( (target == OPEN_NEW_BUFFER || target == 
OPEN_NEW_BUFFER_BACKGROUND ) 
+             && (own_window == true)) {
+            var window = get_window_by_tag("download-manager");
+            if ( window == null ) {
+                window = make_window(buffer_creator(download_buffer, $info = 
info),"download-manager");
+            } 
+            create_buffer(window, buffer_creator(download_buffer, $info = 
info), target);
+        }
+        else {
+            create_buffer(buf, buffer_creator(download_buffer, $info = info), 
target);
+        }
     else {
         var timer = null;
         function finish() {
-- 
1.5.5.1

_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to