[Pkg-mozext-commits] [all-in-one-sidebar] 45/49: Imported Upstream version 0.7.24

David Prévot taffit at moszumanska.debian.org
Fri Sep 19 16:46:44 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository all-in-one-sidebar.

commit eeb7a83fad72e0ff112b66c3e95faecd8c242aff
Merge: 0cf5a05 3cd0c3f
Author: David Prévot <taffit at debian.org>
Date:   Wed Sep 17 17:49:07 2014 -0400

    Imported Upstream version 0.7.24

 content/_lib.js     |  10 +-
 content/addons.xul  |   2 +-
 content/aios.xul    |  19 +--
 content/aios_fx.js  | 187 +-------------------------
 install.rdf         |   8 +-
 skin/css/addons.css | 369 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 skin/css/aios.css   | 265 ++++++++++++++++++++++++++++++++++++-
 7 files changed, 658 insertions(+), 202 deletions(-)

diff --cc content/_lib.js
index 557bf25,bbff93e..a020782
--- a/content/_lib.js
+++ b/content/_lib.js
@@@ -1,707 -1,707 +1,707 @@@
 -
 -/*
 -    modifiziert das Firefox-Sidebar-Menue
 -        => Aufruf durch aios_initSidebar() und aios_getSidebarMenu() (Menuebutton-Events 'onpopupshowing')
 -*/
 -function aios_modSidebarMenu() {
 -    aios_getObjects();
 -
 -    var actSidebar = aios_remLastSidebar();
 -    var command, commandParent;
 -
 -    // jeden einzelnen Menuepunkt uebernehmen oder ggfs. abaendern
 -    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 -        command = null;
 -        commandParent = null;
 -        var broadcaster = null;
 -        var item = fx_sidebarMenu.childNodes[i];
 -
 -        // Icons ein- oder ausblenden
 -        try {
 -            var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.icons');
 -            var theClass = (enable_icons) ? '' : 'aios-noIcons';
 -
 -            if(theClass != '') aios_appendClass(item, theClass);
 -            else aios_stripClass(item, 'aios-noIcons');
 -        }
 -        catch(e) { }
 -
 -        // nur, wenn es kein Separator o.ae. ist
 -        if(item.getAttribute('observes') && document.getElementById(item.getAttribute('observes'))) {
 -            broadcaster = document.getElementById(item.getAttribute('observes'));
 -
 -            if(broadcaster.getAttribute('oncommand')) {
 -                commandParent = broadcaster;
 -
 -                if(broadcaster.id == "viewDMSidebar") {
 -                    var dmLabel = broadcaster.getAttribute('label');
 -                    if(dmLabel.indexOf(" (DMT)") < 0) {
 -                        broadcaster.setAttribute('label', dmLabel + " (DMT)");
 -                        broadcaster.setAttribute('tooltiptext', dmLabel + " (Download Manager Tweak)");
 -                    }
 -                }
 -            }
 -            else if(broadcaster.getAttribute('command')) {
 -                commandParent = document.getElementById(broadcaster.getAttribute('command'));
 -            }
 -
 -            if(commandParent) command = commandParent.getAttribute('oncommand');
 -        }
 -        else if(item.getAttribute('oncommand')) {
 -            command = item.getAttribute('oncommand');
 -            commandParent = item;
 -        }
 -
 -        // Label als Tooltip verwenden, wenn kein Tooltiptext eingestellt wurde
 -        if(!item.getAttribute('tooltiptext') && item.getAttribute('label'))
 -            item.setAttribute('tooltiptext', item.getAttribute('label'));
 -
 -        // den Menuepunkt der aktuellen Sidebar aktivieren/deaktivieren
 -        if(command && commandParent) {
 -
 -            try {
 -                var enable_deac = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entrydeac');
 -
 -                if(actSidebar && command.indexOf(actSidebar) != -1 && enable_deac) item.setAttribute('disabled', true);
 -                else item.setAttribute('disabled', false);
 -            }
 -            catch(e) { }
 -
 -        }
 -    }
 -
 -    // var mitemsep1 = document.getElementById('aios-sidebar-mitem-sep1');
 -    // if(mitemsep1.nextSibling.id == "aios-sidebar-mitem-sep0" || mitemsep1.nextSibling.getAttribute('observes') == "viewConsole2Sidebar" || mitemsep1.nextSibling.getAttribute('observes') == "viewDmtSidebar")
 -    //     mitemsep1.setAttribute('hidden', true);
 -
 -
 -    // Menueeintraege anzeigen/verbergen (Sidebar oeffnen/schliessen und Einstellungen) und verschieben
 -    //var showhideMenuseparator = document.getElementById('aios-sidebar-mitem-sep0');
 -    var paneltabMitem1 = document.getElementById('aios-sidebar-mitem-paneltab1');
 -    var paneltabMitem2 = document.getElementById('aios-sidebar-mitem-paneltab2');
 -    var sidebarshowMitem = document.getElementById('aios-sidebar-mitem-show');
 -    var sidebarhideMitem = document.getElementById('aios-sidebar-mitem-hide');
 -    var prefsMitem = document.getElementById('aios-sidebar-mitem-prefs');
 -
 -    var entries = new Array();
 -    entries[0] = new Array( "showhide", "paneltab1", "paneltab2", "prefs" );
 -
 -    // Eintraege/Icons ein- oder ausblenden
 -    try {
 -        var enable_showhide = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.showhide');
 -        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entries');
 -
 -        var returnVals = aios_showHideEntries(entries, 'menus.sidebar.', 'aios-sidebar-mitem-');
 -
 -        if(enable_showhide && enable_entries) {
 -            sidebarshowMitem.setAttribute('hidden', !aios_isSidebarHidden());
 -            sidebarhideMitem.setAttribute('hidden', aios_isSidebarHidden());
 -        }
 -        else {
 -            sidebarshowMitem.setAttribute('hidden', true);
 -            sidebarhideMitem.setAttribute('hidden', true);
 -        }
 -    }
 -    catch(e) { }
 -
 -
 -    // Menueeintraege ganz nach unten verschieben, wenn das Menue noch nicht bearbeitet wurde
 -    if(!aios_getBoolean(fx_sidebarMenu, 'aios-modified')) {
 -
 -        //fx_sidebarMenu.appendChild(showhideMenuseparator);
 -        fx_sidebarMenu.appendChild(paneltabMitem1);
 -        fx_sidebarMenu.appendChild(paneltabMitem2);
 -        fx_sidebarMenu.appendChild(sidebarshowMitem);
 -        fx_sidebarMenu.appendChild(sidebarhideMitem);
 -        fx_sidebarMenu.appendChild(prefsMitem);
 -    }
 -
 -    // Sidebarmenue als bearbeitet merken
 -    fx_sidebarMenu.setAttribute('aios-modified', true);
 -}
 -
 -
 -/*
 -    Eintraege/Icons ein- oder ausblenden
 -        => Aufruf durch aios_modSidebarMenu()
 -*/
 -function aios_showHideEntries(entries, prefPre_tmp, IDPre) {
 -    var prefPre = prefPre_tmp;
 -    var returnVals = new Array();
 -
 -    try {
 -        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "entries");
 -        var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "icons");
 -
 -        var theClass = (enable_icons) ? '' : 'aios-noIcons';
 -
 -        for(var i = 0; i < entries.length; i++) {
 -
 -            for(var j = 0; j < entries[i].length; j++) {
 -                var pref = false;
 -                // Pref fuer jeden Eintrag einlesen
 -                if(enable_entries) pref = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + entries[i][j]);
 -
 -                // Eintraege ein- oder ausblenden
 -                var theID = IDPre + entries[i][j];
 -                if(document.getElementById(theID)) {
 -                    // falls es mehrere davon gibt => z.B. wegen CompactMenu
 -                    var items = document.getElementsByAttribute('id', theID);
 -                    for(var xy = 0; xy < items.length; xy++) {
 -                        items[xy].hidden = !pref;
 -                    }
 -                }
 -
 -                // aktivierte Eintraege je Gruppe zaehlen
 -                if(!returnVals[i]) returnVals[i] = 0;
 -                if(pref) returnVals[i]++;
 -
 -                // Icons ein- oder ausblenden
 -                if(document.getElementById(IDPre + entries[i][j])) {
 -                    var elem = document.getElementById(IDPre + entries[i][j]);
 -
 -                    if(theClass != '') aios_appendClass(elem, theClass);
 -                    else aios_stripClass(elem, 'aios-noIcons');
 -                }
 -            }
 -
 -            // Separator ein- oder ausblenden
 -            var sep = IDPre + "sep" + i;
 -            if(document.getElementById(sep)) document.getElementById(sep).hidden = !(returnVals[i] > 0);
 -        }
 -    }
 -    catch(e) { }
 -
 -    return returnVals;
 -}
 -
 -
 -/*
 -    Oeffnet die Tab-URL in der Sidebar oder die Sidebar-URL in einem neuen Tab
 -        => Aufruf durch <command id="aiosCmd_panelTab1">
 -                                        <command id="aiosCmd_panelTab2">
 -                                        <toolbarbutton id="paneltab-button">
 -             in aios.xul
 -*/
 -var aiosNewTab, aiosSidebarTitle;
 -function aios_panelTab(event) {
 -    try {
 -        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 -        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -    }
 -    catch(e) { }
 -
 -    if(!event || (!enable_rightclick && event.button == 2)) return false;
 -
 -    var theSidebar;
 -    var mode = "sidebar";
 -
 -    if(typeof event == "object") {
 -        if((event.shiftKey && event.button == 0)) mode = "window";
 -        // metaKey = Mac
 -        if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 -
 -        // Button-Funktion umkehren?
 -        if(ptReverse) {
 -            mode = "tab";
 -            if((event.shiftKey && event.button == 0)) mode = "window";
 -            // metaKey = Mac
 -            if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "sidebar";
 -        }
 -
 -        // Rechtsklick?
 -        if(enable_rightclick && event.button == 2)  mode = "window";
 -    }
 -
 -    if(typeof event == "string") mode = event;
 -
 -
 -    /*
 -        in SIDEBAR oeffnen
 -    */
 -    if(mode == "sidebar") {
 -        var tabHref = top.window.content.location.href;
 -
 -        // interne FF-Quellen (chrome:/)
 -        if(tabHref.indexOf("chrome:/") >= 0) {
 -            theSidebar = aios_isSidebar(tabHref);
 -
 -            // bei "richtigem" Sidebar-Panel den Sidebar-Toggle-Befehl anwenden
 -            if(theSidebar) {
 -                toggleSidebar(theSidebar, true);
 -            }
 -            // keine Sidebar (aber chrome://)
 -            else {
 -                // aktive Sidebar deaktivieren und persists loeschen
 -                if(document.getElementById(theSidebar)) {
 -                    document.getElementById(theSidebar).removeAttribute('checked');
 -                    document.getElementById("sidebar").removeAttribute("src");
 -                    document.getElementById("sidebar-box").removeAttribute("src");
 -                    document.getElementById("sidebar-box").removeAttribute("sidebarcommand");
 -                }
 -
 -                // chrome-URI in Sidebar oeffnen
 -                top.document.getElementById('sidebar').contentDocument.location.href = tabHref;
 -                document.getElementById('sidebar-title').setAttribute('value', top.window.content.document.title);
 -            }
 -        }
 -        // about:
 -        else if(tabHref.indexOf("about:") >= 0) {
 -            aios_setMultiPanel(tabHref);
 -        }
 -        // normale Webseite
 -        else {
 -            aios_setMultiPanel('page');
 -        }
 -    }
 -    /*
 -        in TAB oder FENSTER oeffnen
 -    */
 -    else {
 -        var newSrc;
 -
 -        if(fx_sidebarBox.hidden) return false;
 -
 -        var sidebarDoc = top.document.getElementById('sidebar').contentDocument;
 -        var sidebarHref = sidebarDoc.location.href;
 -        aiosSidebarTitle = top.document.getElementById('sidebar-title').getAttribute('value');
 -
 -        if(sidebarDoc.getElementById('web-panels-browser')) {
 -            var panelDoc = sidebarDoc.getElementById('web-panels-browser').contentDocument;
 -            var panelHref = panelDoc.location.href;
 -        }
 -
 -        // Bookmark-Manager statt Panel?
 -        if(sidebarHref == "chrome://browser/content/bookmarks/bookmarksPanel.xul") {
 -            try {
 -                var enable_bmm = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.bm");
 -            }
 -            catch(e) { }
 -            newSrc = (enable_bmm) ? "chrome://browser/content/places/places.xul" : sidebarHref;
 -        }
 -        // statt MultiPanel-XUL die im Panel geoeffnete Webseite oeffnen
 -        else if(sidebarHref == "chrome://browser/content/web-panels.xul" && mode == "tab") newSrc = panelHref;
 -        // alle anderen
 -        else newSrc = sidebarHref;
 -
 -        // in TAB oeffnen
 -        if(mode == "tab") {
 -            aiosNewTab = aios_addTab(newSrc);
 -
 -            if(!enable_bmm) {
 -
 -                window.setTimeout(function() {
 -                    aiosNewTab.setAttribute('label', aiosSidebarTitle);
 -                }, 400);
 -
 -            }
 -        }
 -        // in FENSTER oeffnen
 -        else {
 -            // wird zur Abfrage in addons/downlaods_....xul und downloads.js benoetigt
 -            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 -            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 -            window.setTimeout(function() {
 -                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 -            }, 500);
 -
 -            var winID = "aiosPanelTabWindow_" + top.document.getElementById('sidebar-box').getAttribute('sidebarcommand');
 -            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 -            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 -            toOpenWindowByType(winID, newSrc, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 -        }
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -
 -*/
 -function aios_isSidebar(aHref) {
 -    // wenn es ein "richtiges" Sidebar-Panel ist (vorhandener broadcaster)
 -    // => richtigen Sidebar-Toggle-Befehl anwenden
 -    //var isSidebar = null;
 -    var theSidebar = null;
 -    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 -
 -    for(var i = 0; i < allSidebars.length; i++) {
 -
 -        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 -        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 -
 -            // aktive Sidebar merken
 -            if(aios_getBoolean(allSidebars[i].id, 'checked')) theSidebar = allSidebars[i].id;
 -
 -            if(aHref == allSidebars[i].getAttribute('sidebarurl')) {
 -                return allSidebars[i].id;
 -            //isSidebar = true;
 -            }
 -        }
 -    }
 -
 -    return false;
 -}
 -
 -
 -/*
 -    Oeffnet div. Fenster u. Manager per Original-Anweisung
 -        Aufruf durch Toolbarbuttons und Menueeintraege
 -*/
 -function aios_contextEvent(event, which) {
 -    try {
 -        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -    }
 -    catch(e) { }
 -
 -    //alert("Maus: " + event.button + "\nShift: " + event.shiftKey + "\nCtrl: " + event.ctrlKey + "\nAlt: " + event.altKey + "\nMeta: " + event.metaKey);
 -
 -    if(event.button == 0 && (!event.shiftKey && !event.ctrlKey && !event.metaKey)) return false;      // nur Linksklick (metaKey = Mac)
 -
 -    if(!enable_rightclick && event.button == 2) return false;                       // Rechtsklick nicht erlaubt
 -
 -    if(!event || typeof which != "object") return false;                            // kein empfangenes Event
 -
 -    var mWindow = document.getElementById('main-window');
 -    if(mWindow && mWindow.getAttribute('chromehidden').indexOf('extrachrome') >= 0) return false; // in einem JS-PopUp
 -
 -    // Objekt ermitteln, welches das Attribut mit Befehl enthaelt (zuvor in aios_setTargets() gesetzt)
 -    var cmdObj;
 -    if(which.getAttribute('command')) cmdObj = document.getElementById(which.getAttribute('command'));
 -    if(!cmdObj && which.getAttribute('observes')) cmdObj = document.getElementById(which.getAttribute('observes'));
 -
 -    // Modus ermitteln
 -    var mode = "sidebar";
 -
 -    // Shift+Linksklick => neues Fenster
 -    if((event.shiftKey && event.button == 0) || (enable_rightclick && event.button == 2)) {
 -        if(aios_getBoolean(cmdObj, 'aios_inSidebar') || cmdObj.getAttribute('group') == "sidebar") mode = "window";
 -    }
 -
 -    // Ctrl+Linksklick oder Mittelklick => neuer Tab (metaKey = Mac)
 -    if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 -
 -    if(!cmdObj) return false;
 -
 -    // Befehl ausfuehren
 -    switch(mode) {
 -        case "sidebar":
 -            toggleSidebar(cmdObj.getAttribute('aios_sbCmd'));
 -            break;
 -
 -        case "window":      // wird zur Abfrage in addons/downloads_....xul und downloads.js benoetigt
 -            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 -            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 -            window.setTimeout(function() {
 -                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 -            }, 500);
 -
 -            var winID = "aiosContextEventWindow_" + cmdObj.getAttribute('aios_sbCmd');
 -            var winSRC = cmdObj.getAttribute('aios_sbUri');
 -            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 -            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 -            toOpenWindowByType(winID, winSRC, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 -
 -            break;
 -
 -        case "tab":
 -            aios_addTab(cmdObj.getAttribute('aios_sbUri'));
 -            break;
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    legt commands fuer Fenster fest, die lt. Einstellungen in der Sidebar geoeffnet werden sollen
 -        => dynamisch per JS, damit keinerlei Veraenderungen vorgenommen werden, wenn es nicht in der Sidebar geoeffnet werden soll
 -                => bessere Kompatibilitaet mit anderen Erweiterungen
 -        => Aufruf durch aios_initSidebar()
 -*/
 -function aios_setTargets() {
 -    var objects, i;
 -
 -    // weise den Menueelementen der Fehlerkonsole, des Seitenquelltextes und der Seiteninformationen die entsprechenden commands zu
 -    document.getElementById('javascriptConsole').removeAttribute('oncommand');
 -    document.getElementById('javascriptConsole').setAttribute('command', 'Tools:Console');
 -
 -    if(document.getElementById('key_errorConsole')) {
 -        document.getElementById('key_errorConsole').removeAttribute('oncommand');
 -        document.getElementById('key_errorConsole').setAttribute('command', 'Tools:Console');
 -    }
 -
 -    document.getElementById('context-viewinfo').removeAttribute('oncommand');
 -    document.getElementById('context-viewinfo').setAttribute('command', 'View:PageInfo');
 -
 -
 -    var targets = new Array();
 -    targets['bm'] = new Array('View:Bookmarks',     'viewBookmarksSidebar',     'bookmarks');
 -    targets['hi'] = new Array('View:History',       'viewHistorySidebar',       'history');
 -    targets['dm'] = new Array('Tools:Downloads',    'viewDownloadsSidebar',     'downloads');
 -    targets['ad'] = new Array('Tools:Addons',       'viewAddonsSidebar',        'addons');
 -    targets['mp'] = new Array('Tools:MultiPanel',   'viewWebPanelsSidebar',     'multipanel');
 -    targets['pi'] = new Array('View:PageInfo',      'viewPageInfoSidebar',      'pageinfo');
 -    targets['co'] = new Array('Tools:Console',      'viewConsoleSidebar',       'console');
 -
 -    if(document.getElementById('viewConsole2Sidebar'))
 -        targets['co'] = new Array('Tools:Console', 'viewConsole2Sidebar', 'console');
 -
 -    // informative Tooltips und Funktionsumkehrung (PanelTab) aktivieren?
 -    var prefInfotip = false;
 -    var ptReverse = false;
 -    try {
 -        prefInfotip = AiOS_HELPER.prefBranchAiOS.getBoolPref("infotips");
 -        ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 -
 -        if(prefInfotip) {
 -            if(elem_switch) elem_switch.removeAttribute('tooltiptext');
 -
 -            //if(document.getElementById('paneltab-button')) document.getElementById('paneltab-button').removeAttribute('tooltiptext');
 -            // in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann
 -            objects = document.getElementsByAttribute('id', 'paneltab-button');
 -            for(i = 0; i < objects.length; i++) {
 -                objects[i].removeAttribute('tooltiptext');
 -            }
 -        }
 -
 -        if(document.getElementById('paneltab-button')) {
 -            if(ptReverse) document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip-reverse');
 -            else document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip');
 -        }
 -    }
 -    catch(e) { }
 -
 -    for(var obj in targets) {
 -        // in Sidebar oeffnen?
 -        var prefSidebar;
 -        try {
 -            if(obj != "ad") prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref(obj + ".sidebar");
 -            else prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref("em.sidebar");
 -
 -            var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -        }
 -        catch(e) { }
 -
 -        var ffObj = document.getElementById(targets[obj][0]);           // Original-Objekt
 -        var sbObj = document.getElementById(targets[obj][1]);           // Sidebar-Objekt
 -        var tpObj = document.getElementById(targets[obj][2] + "-tooltip");  // Tooltip
 -        var btObj = document.getElementById(targets[obj][2] + "-button");   // Button
 -
 -        if(ffObj && sbObj) {
 -
 -            var newObj, newCmd, newTp;
 -
 -            if(prefSidebar) {
 -                newObj = sbObj;
 -                newTp = document.getElementById('template-sidebar-tooltip').childNodes[0].cloneNode(true);
 -            }
 -            else {
 -                newObj = ffObj;
 -                newTp = document.getElementById('template-window-tooltip').childNodes[0].cloneNode(true);
 -            }
 -
 -            newCmd = newObj.getAttribute('oncommand');
 -
 -            // verhindern dass zwei Befehle ausgefuehrt werden, wenn eine Taste mitgedrueckt wird
 -            newCmd = "if(aios_preventDblCmd(event)) " + newCmd + " return true;";
 -
 -            // Befehl zuweisen
 -            ffObj.setAttribute('oncommand', newCmd);
 -
 -
 -            // Befehle merken
 -            //  => fuer Context-Funktionen - aios_contextEvent() - abfragbar
 -            //  => zuweisbar, wenn nicht mehr in Sidebar geoeffnet werden soll
 -            if(!aios_getBoolean(ffObj, 'modByAIOS')) {
 -                // fuer Klicks auf Toolbarbuttons und Menueeintraege
 -                ffObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 -                ffObj.setAttribute('aios_sbCmd', targets[obj][1]);
 -                ffObj.setAttribute('aios_inSidebar', prefSidebar);
 -
 -                // fuer Klicks auf Menueeintraege in den Sidebarmenues => siehe aios_preventDblCmd()
 -                sbObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 -                sbObj.setAttribute('oncommand', "if(aios_preventDblCmd(event)) " + sbObj.getAttribute('oncommand'));
 -            }
 -
 -
 -            // Tooltiptext entfernen, um Info-Tooltips sichtbar zu machen (in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann)
 -            //if(prefInfotip && btObj) btObj.removeAttribute('tooltiptext');
 -            if(prefInfotip && btObj) {
 -                objects = document.getElementsByAttribute('id', btObj.id);
 -                for(i = 0; i < objects.length; i++) {
 -                    objects[i].removeAttribute('tooltiptext');
 -                }
 -            }
 -
 -            // "alte" Tooltip-Zeilen entfernen (sonst werden sie mit jedem Funktionsaufruf zusaetzlich eingefuegt)
 -            if(tpObj.childNodes.length > 1) tpObj.removeChild(tpObj.childNodes[1]);
 -
 -            // Rechtsklick im Tooltip aktivieren
 -            if(enable_rightclick)
 -                newTp.setAttribute('r3c2', newTp.getAttribute('r3c2') + newTp.getAttribute('rightclick'));
 -
 -            // Tooltip zuweisen
 -            tpObj.appendChild(newTp);
 -
 -            // Kontext-Menue der Toolbarbuttons deaktivieren, wenn Rechtsklick erlaubt ist
 -            if(btObj && enable_rightclick) btObj.setAttribute('context', '');
 -
 -            ffObj.setAttribute('modByAIOS', true);
 -        }
 -    }
 -
 -    // Kontext-Menue des PanelTab buttons deaktivieren, wenn Rechtsklick erlaubt ist
 -    if(enable_rightclick && document.getElementById('paneltab-button')) {
 -        document.getElementById('paneltab-button').setAttribute('context', '');
 -        var pttt1 = document.getElementById('paneltab-tooltip').firstChild;
 -        var pttt2 = document.getElementById('paneltab-tooltip-reverse').firstChild;
 -
 -        if(pttt1.getAttribute('r3c2').indexOf(pttt1.getAttribute('rightclick')) == -1) {
 -            pttt1.setAttribute('r3c2', pttt1.getAttribute('r3c2') + pttt1.getAttribute('rightclick'));
 -        }
 -        if(pttt2.getAttribute('r3c2').indexOf(pttt2.getAttribute('rightclick')) == -1) {
 -            pttt2.setAttribute('r3c2', pttt2.getAttribute('r3c2') + pttt2.getAttribute('rightclick'));
 -        }
 -    }
 -
 -
 -    // Oeffnen des Download-Fensters verhindern, wenn die Sidebar genutzt werden soll
 -    if(AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.sidebar')) AiOS_HELPER.prefService.setBoolPref("browser.download.manager.showWhenStarting", false);
 -
 -
 -    // Download-Observer hinzufuegen, falls Downloads in der Sidebar geoeffnet werden sollen
 -    var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 -
 -    observerService.addObserver(aios_DownloadObserver, "dl-start",  false);
 -    observerService.addObserver(aios_DownloadObserver, "dl-done",  false);
 -
 -    // Observer beim Schliessen des Fensters wieder loeschen
 -    window.addEventListener("unload", function() {
 -        if(aios_DownloadObserver) {
 -            var aios_myOs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 -            aios_myOs.removeObserver(aios_DownloadObserver, "dl-start");
 -            aios_myOs.removeObserver(aios_DownloadObserver, "dl-done");
 -            aios_DownloadObserver = null;
 -        }
 -
 -    }, false);
 -
 -
 -
 -    return true;
 -}
 -
 -/*
 -    Oeffnet die Sidebar,
 -        1. wenn ein Download gestartet wird ...
 -        2. der Manager geoeffnet werden soll und ...
 -        3. das Ziel die Sidebar sein soll
 -*/
 -var aios_DownloadObserver = {
 -    observe: function (aSubject, aTopic, aState) {
 -
 -        var autoOpen = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoopen');
 -        var autoClose = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoclose');
 -        var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);
 -
 -        switch (aTopic) {
 -            case "dl-start":
 -                var comElem = document.getElementById('Tools:Downloads');
 -                if(autoOpen && comElem.getAttribute('oncommand').indexOf('viewDownloadsSidebar') >= 0) {
 -                    // AiOS_HELPER.windowWatcher.activeWindow verhindert, dass die Sidebar in jedem Fenster geoeffnet wird
 -                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar("viewDownloadsSidebar", true);
 -                }
 -                break;
 -
 -            case "dl-done":
 -                var sideSrc = document.getElementById('sidebar').getAttribute('src');
 -                if(autoOpen && autoClose && sideSrc.indexOf('downloads.xul') >= 0) {
 -                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar();
 -                }
 -                break;
 -        }
 -    }
 -};
 -
 -
 -/*
 -  verhindert, dass bei Klick + Shift oder Strg der normale Command-Befehl und die Doppelfunktion ausgefuehrt wird
 -    => Aufruf durch die
 -*/
 -function aios_preventDblCmd(ev) {
 -    // metaKey = Mac
 -    if(ev.shiftKey || ev.ctrlKey || ev.metaKey) {
 -        if(ev.explicitOriginalTarget.tagName == 'toolbarbutton' || ev.explicitOriginalTarget.tagName == 'menuitem') return false;
 -    }
 -    return true;
 -}
 -
 -
 -/*
 -    prueft, ob das Browserfenster maximiert ist oder sich im Vollbildmodus befindet
 -        => Aufruf durch aios_checkThinSwitch()
 -*/
 -function aios_isWinMax() {
 -    var windowMax = document.getElementById('main-window').getAttribute('sizemode') == "maximized";
 -
 -    var maxWidth = window.outerWidth > screen.availWidth;
 -    var maxHeight = window.outerHeight > screen.availHeight;
 -    if((maxWidth && maxHeight) || window.fullScreen) windowMax = true;
 -
 -    return windowMax;
 -}
 -
 -
 -/*
 -    prueft, ob die Sidebar gerade sichtbar/unsichtbar ist => abhaengig von der Sidebar-Methode
 -*/
 -function aios_isSidebarHidden() {
 -    aios_getObjects();
 -
 -    try {
 -        var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 -    }
 -    catch(e) { }
 -
 -    // CollapseByStyle-Methode if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.getAttribute('style') != "");
 -    if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.collapsed);
 -    else return fx_sidebarBox.hidden;
 -}
 -
 -
 -/*
 -    Autohide-Feature initialisieren
 -        => Aufruf durch aios_initSidebar() und aios_savePrefs()
 -*/
 -var aiosFocus = true;
 -function aios_initAutohide() {
 -    // Zustand des Autohide-Buttons einstellen
 -    document.getElementById('aios-enableAutohide').setAttribute('checked', AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.autoshow"));
 -
 -    // Autohide-Feature-Funktion hinzufuegen
 -    fx_sidebarBox.addEventListener("mouseover", function() {
 -        if(document.getElementById('appcontent'))
 -            document.getElementById('appcontent').addEventListener("mouseover", aios_autoShowHide, true);
 -    }, true);
 -
 -    window.addEventListener("focus", function(e) {
 -        aiosFocus = true;
 -    }, true);
 -    window.addEventListener("blur", function(e) {
 -        aiosFocus = false;
 -    }, true);
 -}
 -
 -
 -/*
 -    Autohide ein- bzw. ausschalten per Toolbarbutton
 -        => Aufruf durch broadcaster 'aios-enableAutohide'
 -*/
 -function aios_toggleAutohide(which) {
 -    try {
 -        AiOS_HELPER.prefBranchAiOS.setBoolPref("gen.switch.autoshow", aios_getBoolean(which, 'checked'));
 -    }
 -    catch(e) { }
 +
 +/*
 +    modifiziert das Firefox-Sidebar-Menue
 +        => Aufruf durch aios_initSidebar() und aios_getSidebarMenu() (Menuebutton-Events 'onpopupshowing')
 +*/
 +function aios_modSidebarMenu() {
 +    aios_getObjects();
 +
 +    var actSidebar = aios_remLastSidebar();
 +    var command, commandParent;
 +
 +    // jeden einzelnen Menuepunkt uebernehmen oder ggfs. abaendern
 +    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 +        command = null;
 +        commandParent = null;
 +        var broadcaster = null;
 +        var item = fx_sidebarMenu.childNodes[i];
 +
 +        // Icons ein- oder ausblenden
 +        try {
 +            var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.icons');
 +            var theClass = (enable_icons) ? '' : 'aios-noIcons';
 +
 +            if(theClass != '') aios_appendClass(item, theClass);
 +            else aios_stripClass(item, 'aios-noIcons');
 +        }
 +        catch(e) { }
 +
 +        // nur, wenn es kein Separator o.ae. ist
 +        if(item.getAttribute('observes') && document.getElementById(item.getAttribute('observes'))) {
 +            broadcaster = document.getElementById(item.getAttribute('observes'));
 +
 +            if(broadcaster.getAttribute('oncommand')) {
 +                commandParent = broadcaster;
 +
 +                if(broadcaster.id == "viewDMSidebar") {
 +                    var dmLabel = broadcaster.getAttribute('label');
 +                    if(dmLabel.indexOf(" (DMT)") < 0) {
 +                        broadcaster.setAttribute('label', dmLabel + " (DMT)");
 +                        broadcaster.setAttribute('tooltiptext', dmLabel + " (Download Manager Tweak)");
 +                    }
 +                }
 +            }
 +            else if(broadcaster.getAttribute('command')) {
 +                commandParent = document.getElementById(broadcaster.getAttribute('command'));
 +            }
 +
 +            if(commandParent) command = commandParent.getAttribute('oncommand');
 +        }
 +        else if(item.getAttribute('oncommand')) {
 +            command = item.getAttribute('oncommand');
 +            commandParent = item;
 +        }
 +
 +        // Label als Tooltip verwenden, wenn kein Tooltiptext eingestellt wurde
 +        if(!item.getAttribute('tooltiptext') && item.getAttribute('label'))
 +            item.setAttribute('tooltiptext', item.getAttribute('label'));
 +
 +        // den Menuepunkt der aktuellen Sidebar aktivieren/deaktivieren
 +        if(command && commandParent) {
 +
 +            try {
 +                var enable_deac = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entrydeac');
 +
 +                if(actSidebar && command.indexOf(actSidebar) != -1 && enable_deac) item.setAttribute('disabled', true);
 +                else item.setAttribute('disabled', false);
 +            }
 +            catch(e) { }
 +
 +        }
 +    }
 +
-     var mitemsep1 = document.getElementById('aios-sidebar-mitem-sep1');
-     if(mitemsep1.nextSibling.id == "aios-sidebar-mitem-sep0" || mitemsep1.nextSibling.getAttribute('observes') == "viewConsole2Sidebar" || mitemsep1.nextSibling.getAttribute('observes') == "viewDmtSidebar")
-         mitemsep1.setAttribute('hidden', true);
++    // var mitemsep1 = document.getElementById('aios-sidebar-mitem-sep1');
++    // if(mitemsep1.nextSibling.id == "aios-sidebar-mitem-sep0" || mitemsep1.nextSibling.getAttribute('observes') == "viewConsole2Sidebar" || mitemsep1.nextSibling.getAttribute('observes') == "viewDmtSidebar")
++    //     mitemsep1.setAttribute('hidden', true);
 +
 +
 +    // Menueeintraege anzeigen/verbergen (Sidebar oeffnen/schliessen und Einstellungen) und verschieben
-     var showhideMenuseparator = document.getElementById('aios-sidebar-mitem-sep0');
++    //var showhideMenuseparator = document.getElementById('aios-sidebar-mitem-sep0');
 +    var paneltabMitem1 = document.getElementById('aios-sidebar-mitem-paneltab1');
 +    var paneltabMitem2 = document.getElementById('aios-sidebar-mitem-paneltab2');
 +    var sidebarshowMitem = document.getElementById('aios-sidebar-mitem-show');
 +    var sidebarhideMitem = document.getElementById('aios-sidebar-mitem-hide');
 +    var prefsMitem = document.getElementById('aios-sidebar-mitem-prefs');
 +
 +    var entries = new Array();
 +    entries[0] = new Array( "showhide", "paneltab1", "paneltab2", "prefs" );
 +
 +    // Eintraege/Icons ein- oder ausblenden
 +    try {
 +        var enable_showhide = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.showhide');
 +        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entries');
 +
 +        var returnVals = aios_showHideEntries(entries, 'menus.sidebar.', 'aios-sidebar-mitem-');
 +
 +        if(enable_showhide && enable_entries) {
 +            sidebarshowMitem.setAttribute('hidden', !aios_isSidebarHidden());
 +            sidebarhideMitem.setAttribute('hidden', aios_isSidebarHidden());
 +        }
 +        else {
 +            sidebarshowMitem.setAttribute('hidden', true);
 +            sidebarhideMitem.setAttribute('hidden', true);
 +        }
 +    }
 +    catch(e) { }
 +
 +
 +    // Menueeintraege ganz nach unten verschieben, wenn das Menue noch nicht bearbeitet wurde
 +    if(!aios_getBoolean(fx_sidebarMenu, 'aios-modified')) {
 +
-         fx_sidebarMenu.appendChild(showhideMenuseparator);
++        //fx_sidebarMenu.appendChild(showhideMenuseparator);
 +        fx_sidebarMenu.appendChild(paneltabMitem1);
 +        fx_sidebarMenu.appendChild(paneltabMitem2);
 +        fx_sidebarMenu.appendChild(sidebarshowMitem);
 +        fx_sidebarMenu.appendChild(sidebarhideMitem);
 +        fx_sidebarMenu.appendChild(prefsMitem);
 +    }
 +
 +    // Sidebarmenue als bearbeitet merken
 +    fx_sidebarMenu.setAttribute('aios-modified', true);
 +}
 +
 +
 +/*
 +    Eintraege/Icons ein- oder ausblenden
 +        => Aufruf durch aios_modSidebarMenu()
 +*/
 +function aios_showHideEntries(entries, prefPre_tmp, IDPre) {
 +    var prefPre = prefPre_tmp;
 +    var returnVals = new Array();
 +
 +    try {
 +        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "entries");
 +        var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "icons");
 +
 +        var theClass = (enable_icons) ? '' : 'aios-noIcons';
 +
 +        for(var i = 0; i < entries.length; i++) {
 +
 +            for(var j = 0; j < entries[i].length; j++) {
 +                var pref = false;
 +                // Pref fuer jeden Eintrag einlesen
 +                if(enable_entries) pref = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + entries[i][j]);
 +
 +                // Eintraege ein- oder ausblenden
 +                var theID = IDPre + entries[i][j];
 +                if(document.getElementById(theID)) {
 +                    // falls es mehrere davon gibt => z.B. wegen CompactMenu
 +                    var items = document.getElementsByAttribute('id', theID);
 +                    for(var xy = 0; xy < items.length; xy++) {
 +                        items[xy].hidden = !pref;
 +                    }
 +                }
 +
 +                // aktivierte Eintraege je Gruppe zaehlen
 +                if(!returnVals[i]) returnVals[i] = 0;
 +                if(pref) returnVals[i]++;
 +
 +                // Icons ein- oder ausblenden
 +                if(document.getElementById(IDPre + entries[i][j])) {
 +                    var elem = document.getElementById(IDPre + entries[i][j]);
 +
 +                    if(theClass != '') aios_appendClass(elem, theClass);
 +                    else aios_stripClass(elem, 'aios-noIcons');
 +                }
 +            }
 +
 +            // Separator ein- oder ausblenden
 +            var sep = IDPre + "sep" + i;
 +            if(document.getElementById(sep)) document.getElementById(sep).hidden = !(returnVals[i] > 0);
 +        }
 +    }
 +    catch(e) { }
 +
 +    return returnVals;
 +}
 +
 +
 +/*
 +    Oeffnet die Tab-URL in der Sidebar oder die Sidebar-URL in einem neuen Tab
 +        => Aufruf durch <command id="aiosCmd_panelTab1">
 +                                        <command id="aiosCmd_panelTab2">
 +                                        <toolbarbutton id="paneltab-button">
 +             in aios.xul
 +*/
 +var aiosNewTab, aiosSidebarTitle;
 +function aios_panelTab(event) {
 +    try {
 +        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 +        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +    }
 +    catch(e) { }
 +
 +    if(!event || (!enable_rightclick && event.button == 2)) return false;
 +
 +    var theSidebar;
 +    var mode = "sidebar";
 +
 +    if(typeof event == "object") {
 +        if((event.shiftKey && event.button == 0)) mode = "window";
 +        // metaKey = Mac
 +        if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 +
 +        // Button-Funktion umkehren?
 +        if(ptReverse) {
 +            mode = "tab";
 +            if((event.shiftKey && event.button == 0)) mode = "window";
 +            // metaKey = Mac
 +            if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "sidebar";
 +        }
 +
 +        // Rechtsklick?
 +        if(enable_rightclick && event.button == 2)  mode = "window";
 +    }
 +
 +    if(typeof event == "string") mode = event;
 +
 +
 +    /*
 +        in SIDEBAR oeffnen
 +    */
 +    if(mode == "sidebar") {
 +        var tabHref = top.window.content.location.href;
 +
 +        // interne FF-Quellen (chrome:/)
 +        if(tabHref.indexOf("chrome:/") >= 0) {
 +            theSidebar = aios_isSidebar(tabHref);
 +
 +            // bei "richtigem" Sidebar-Panel den Sidebar-Toggle-Befehl anwenden
 +            if(theSidebar) {
 +                toggleSidebar(theSidebar, true);
 +            }
 +            // keine Sidebar (aber chrome://)
 +            else {
 +                // aktive Sidebar deaktivieren und persists loeschen
 +                if(document.getElementById(theSidebar)) {
 +                    document.getElementById(theSidebar).removeAttribute('checked');
 +                    document.getElementById("sidebar").removeAttribute("src");
 +                    document.getElementById("sidebar-box").removeAttribute("src");
 +                    document.getElementById("sidebar-box").removeAttribute("sidebarcommand");
 +                }
 +
 +                // chrome-URI in Sidebar oeffnen
 +                top.document.getElementById('sidebar').contentDocument.location.href = tabHref;
 +                document.getElementById('sidebar-title').setAttribute('value', top.window.content.document.title);
 +            }
 +        }
 +        // about:
 +        else if(tabHref.indexOf("about:") >= 0) {
 +            aios_setMultiPanel(tabHref);
 +        }
 +        // normale Webseite
 +        else {
 +            aios_setMultiPanel('page');
 +        }
 +    }
 +    /*
 +        in TAB oder FENSTER oeffnen
 +    */
 +    else {
 +        var newSrc;
 +
 +        if(fx_sidebarBox.hidden) return false;
 +
 +        var sidebarDoc = top.document.getElementById('sidebar').contentDocument;
 +        var sidebarHref = sidebarDoc.location.href;
 +        aiosSidebarTitle = top.document.getElementById('sidebar-title').getAttribute('value');
 +
 +        if(sidebarDoc.getElementById('web-panels-browser')) {
 +            var panelDoc = sidebarDoc.getElementById('web-panels-browser').contentDocument;
 +            var panelHref = panelDoc.location.href;
 +        }
 +
 +        // Bookmark-Manager statt Panel?
 +        if(sidebarHref == "chrome://browser/content/bookmarks/bookmarksPanel.xul") {
 +            try {
 +                var enable_bmm = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.bm");
 +            }
 +            catch(e) { }
 +            newSrc = (enable_bmm) ? "chrome://browser/content/places/places.xul" : sidebarHref;
 +        }
 +        // statt MultiPanel-XUL die im Panel geoeffnete Webseite oeffnen
 +        else if(sidebarHref == "chrome://browser/content/web-panels.xul" && mode == "tab") newSrc = panelHref;
 +        // alle anderen
 +        else newSrc = sidebarHref;
 +
 +        // in TAB oeffnen
 +        if(mode == "tab") {
 +            aiosNewTab = aios_addTab(newSrc);
 +
 +            if(!enable_bmm) {
 +
 +                window.setTimeout(function() {
 +                    aiosNewTab.setAttribute('label', aiosSidebarTitle);
 +                }, 400);
 +
 +            }
 +        }
 +        // in FENSTER oeffnen
 +        else {
 +            // wird zur Abfrage in addons/downlaods_....xul und downloads.js benoetigt
 +            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 +            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 +            window.setTimeout(function() {
 +                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 +            }, 500);
 +
 +            var winID = "aiosPanelTabWindow_" + top.document.getElementById('sidebar-box').getAttribute('sidebarcommand');
 +            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 +            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 +            toOpenWindowByType(winID, newSrc, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 +        }
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +
 +*/
 +function aios_isSidebar(aHref) {
 +    // wenn es ein "richtiges" Sidebar-Panel ist (vorhandener broadcaster)
 +    // => richtigen Sidebar-Toggle-Befehl anwenden
 +    //var isSidebar = null;
 +    var theSidebar = null;
 +    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 +
 +    for(var i = 0; i < allSidebars.length; i++) {
 +
 +        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 +        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 +
 +            // aktive Sidebar merken
 +            if(aios_getBoolean(allSidebars[i].id, 'checked')) theSidebar = allSidebars[i].id;
 +
 +            if(aHref == allSidebars[i].getAttribute('sidebarurl')) {
 +                return allSidebars[i].id;
 +            //isSidebar = true;
 +            }
 +        }
 +    }
 +
 +    return false;
 +}
 +
 +
 +/*
 +    Oeffnet div. Fenster u. Manager per Original-Anweisung
 +        Aufruf durch Toolbarbuttons und Menueeintraege
 +*/
 +function aios_contextEvent(event, which) {
 +    try {
 +        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +    }
 +    catch(e) { }
 +
 +    //alert("Maus: " + event.button + "\nShift: " + event.shiftKey + "\nCtrl: " + event.ctrlKey + "\nAlt: " + event.altKey + "\nMeta: " + event.metaKey);
 +
 +    if(event.button == 0 && (!event.shiftKey && !event.ctrlKey && !event.metaKey)) return false;      // nur Linksklick (metaKey = Mac)
 +
 +    if(!enable_rightclick && event.button == 2) return false;                       // Rechtsklick nicht erlaubt
 +
 +    if(!event || typeof which != "object") return false;                            // kein empfangenes Event
 +
 +    var mWindow = document.getElementById('main-window');
 +    if(mWindow && mWindow.getAttribute('chromehidden').indexOf('extrachrome') >= 0) return false; // in einem JS-PopUp
 +
 +    // Objekt ermitteln, welches das Attribut mit Befehl enthaelt (zuvor in aios_setTargets() gesetzt)
 +    var cmdObj;
 +    if(which.getAttribute('command')) cmdObj = document.getElementById(which.getAttribute('command'));
 +    if(!cmdObj && which.getAttribute('observes')) cmdObj = document.getElementById(which.getAttribute('observes'));
 +
 +    // Modus ermitteln
 +    var mode = "sidebar";
 +
 +    // Shift+Linksklick => neues Fenster
 +    if((event.shiftKey && event.button == 0) || (enable_rightclick && event.button == 2)) {
 +        if(aios_getBoolean(cmdObj, 'aios_inSidebar') || cmdObj.getAttribute('group') == "sidebar") mode = "window";
 +    }
 +
 +    // Ctrl+Linksklick oder Mittelklick => neuer Tab (metaKey = Mac)
 +    if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 +
 +    if(!cmdObj) return false;
 +
 +    // Befehl ausfuehren
 +    switch(mode) {
 +        case "sidebar":
 +            toggleSidebar(cmdObj.getAttribute('aios_sbCmd'));
 +            break;
 +
 +        case "window":      // wird zur Abfrage in addons/downloads_....xul und downloads.js benoetigt
 +            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 +            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 +            window.setTimeout(function() {
 +                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 +            }, 500);
 +
 +            var winID = "aiosContextEventWindow_" + cmdObj.getAttribute('aios_sbCmd');
 +            var winSRC = cmdObj.getAttribute('aios_sbUri');
 +            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 +            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 +            toOpenWindowByType(winID, winSRC, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 +
 +            break;
 +
 +        case "tab":
 +            aios_addTab(cmdObj.getAttribute('aios_sbUri'));
 +            break;
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    legt commands fuer Fenster fest, die lt. Einstellungen in der Sidebar geoeffnet werden sollen
 +        => dynamisch per JS, damit keinerlei Veraenderungen vorgenommen werden, wenn es nicht in der Sidebar geoeffnet werden soll
 +                => bessere Kompatibilitaet mit anderen Erweiterungen
 +        => Aufruf durch aios_initSidebar()
 +*/
 +function aios_setTargets() {
 +    var objects, i;
 +
 +    // weise den Menueelementen der Fehlerkonsole, des Seitenquelltextes und der Seiteninformationen die entsprechenden commands zu
 +    document.getElementById('javascriptConsole').removeAttribute('oncommand');
 +    document.getElementById('javascriptConsole').setAttribute('command', 'Tools:Console');
 +
 +    if(document.getElementById('key_errorConsole')) {
 +        document.getElementById('key_errorConsole').removeAttribute('oncommand');
 +        document.getElementById('key_errorConsole').setAttribute('command', 'Tools:Console');
 +    }
 +
 +    document.getElementById('context-viewinfo').removeAttribute('oncommand');
 +    document.getElementById('context-viewinfo').setAttribute('command', 'View:PageInfo');
 +
 +
 +    var targets = new Array();
 +    targets['bm'] = new Array('View:Bookmarks',     'viewBookmarksSidebar',     'bookmarks');
 +    targets['hi'] = new Array('View:History',       'viewHistorySidebar',       'history');
 +    targets['dm'] = new Array('Tools:Downloads',    'viewDownloadsSidebar',     'downloads');
 +    targets['ad'] = new Array('Tools:Addons',       'viewAddonsSidebar',        'addons');
 +    targets['mp'] = new Array('Tools:MultiPanel',   'viewWebPanelsSidebar',     'multipanel');
 +    targets['pi'] = new Array('View:PageInfo',      'viewPageInfoSidebar',      'pageinfo');
 +    targets['co'] = new Array('Tools:Console',      'viewConsoleSidebar',       'console');
 +
 +    if(document.getElementById('viewConsole2Sidebar'))
 +        targets['co'] = new Array('Tools:Console', 'viewConsole2Sidebar', 'console');
 +
 +    // informative Tooltips und Funktionsumkehrung (PanelTab) aktivieren?
 +    var prefInfotip = false;
 +    var ptReverse = false;
 +    try {
 +        prefInfotip = AiOS_HELPER.prefBranchAiOS.getBoolPref("infotips");
 +        ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 +
 +        if(prefInfotip) {
 +            if(elem_switch) elem_switch.removeAttribute('tooltiptext');
 +
 +            //if(document.getElementById('paneltab-button')) document.getElementById('paneltab-button').removeAttribute('tooltiptext');
 +            // in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann
 +            objects = document.getElementsByAttribute('id', 'paneltab-button');
 +            for(i = 0; i < objects.length; i++) {
 +                objects[i].removeAttribute('tooltiptext');
 +            }
 +        }
 +
 +        if(document.getElementById('paneltab-button')) {
 +            if(ptReverse) document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip-reverse');
 +            else document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip');
 +        }
 +    }
 +    catch(e) { }
 +
 +    for(var obj in targets) {
 +        // in Sidebar oeffnen?
 +        var prefSidebar;
 +        try {
 +            if(obj != "ad") prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref(obj + ".sidebar");
 +            else prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref("em.sidebar");
 +
 +            var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +        }
 +        catch(e) { }
 +
 +        var ffObj = document.getElementById(targets[obj][0]);           // Original-Objekt
 +        var sbObj = document.getElementById(targets[obj][1]);           // Sidebar-Objekt
 +        var tpObj = document.getElementById(targets[obj][2] + "-tooltip");  // Tooltip
 +        var btObj = document.getElementById(targets[obj][2] + "-button");   // Button
 +
 +        if(ffObj && sbObj) {
 +
 +            var newObj, newCmd, newTp;
 +
 +            if(prefSidebar) {
 +                newObj = sbObj;
 +                newTp = document.getElementById('template-sidebar-tooltip').childNodes[0].cloneNode(true);
 +            }
 +            else {
 +                newObj = ffObj;
 +                newTp = document.getElementById('template-window-tooltip').childNodes[0].cloneNode(true);
 +            }
 +
 +            newCmd = newObj.getAttribute('oncommand');
 +
 +            // verhindern dass zwei Befehle ausgefuehrt werden, wenn eine Taste mitgedrueckt wird
 +            newCmd = "if(aios_preventDblCmd(event)) " + newCmd + " return true;";
 +
 +            // Befehl zuweisen
 +            ffObj.setAttribute('oncommand', newCmd);
 +
 +
 +            // Befehle merken
 +            //  => fuer Context-Funktionen - aios_contextEvent() - abfragbar
 +            //  => zuweisbar, wenn nicht mehr in Sidebar geoeffnet werden soll
 +            if(!aios_getBoolean(ffObj, 'modByAIOS')) {
 +                // fuer Klicks auf Toolbarbuttons und Menueeintraege
 +                ffObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 +                ffObj.setAttribute('aios_sbCmd', targets[obj][1]);
 +                ffObj.setAttribute('aios_inSidebar', prefSidebar);
 +
 +                // fuer Klicks auf Menueeintraege in den Sidebarmenues => siehe aios_preventDblCmd()
 +                sbObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 +                sbObj.setAttribute('oncommand', "if(aios_preventDblCmd(event)) " + sbObj.getAttribute('oncommand'));
 +            }
 +
 +
 +            // Tooltiptext entfernen, um Info-Tooltips sichtbar zu machen (in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann)
 +            //if(prefInfotip && btObj) btObj.removeAttribute('tooltiptext');
 +            if(prefInfotip && btObj) {
 +                objects = document.getElementsByAttribute('id', btObj.id);
 +                for(i = 0; i < objects.length; i++) {
 +                    objects[i].removeAttribute('tooltiptext');
 +                }
 +            }
 +
 +            // "alte" Tooltip-Zeilen entfernen (sonst werden sie mit jedem Funktionsaufruf zusaetzlich eingefuegt)
 +            if(tpObj.childNodes.length > 1) tpObj.removeChild(tpObj.childNodes[1]);
 +
 +            // Rechtsklick im Tooltip aktivieren
 +            if(enable_rightclick)
 +                newTp.setAttribute('r3c2', newTp.getAttribute('r3c2') + newTp.getAttribute('rightclick'));
 +
 +            // Tooltip zuweisen
 +            tpObj.appendChild(newTp);
 +
 +            // Kontext-Menue der Toolbarbuttons deaktivieren, wenn Rechtsklick erlaubt ist
 +            if(btObj && enable_rightclick) btObj.setAttribute('context', '');
 +
 +            ffObj.setAttribute('modByAIOS', true);
 +        }
 +    }
 +
 +    // Kontext-Menue des PanelTab buttons deaktivieren, wenn Rechtsklick erlaubt ist
 +    if(enable_rightclick && document.getElementById('paneltab-button')) {
 +        document.getElementById('paneltab-button').setAttribute('context', '');
 +        var pttt1 = document.getElementById('paneltab-tooltip').firstChild;
 +        var pttt2 = document.getElementById('paneltab-tooltip-reverse').firstChild;
 +
 +        if(pttt1.getAttribute('r3c2').indexOf(pttt1.getAttribute('rightclick')) == -1) {
 +            pttt1.setAttribute('r3c2', pttt1.getAttribute('r3c2') + pttt1.getAttribute('rightclick'));
 +        }
 +        if(pttt2.getAttribute('r3c2').indexOf(pttt2.getAttribute('rightclick')) == -1) {
 +            pttt2.setAttribute('r3c2', pttt2.getAttribute('r3c2') + pttt2.getAttribute('rightclick'));
 +        }
 +    }
 +
 +
 +    // Oeffnen des Download-Fensters verhindern, wenn die Sidebar genutzt werden soll
 +    if(AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.sidebar')) AiOS_HELPER.prefService.setBoolPref("browser.download.manager.showWhenStarting", false);
 +
 +
 +    // Download-Observer hinzufuegen, falls Downloads in der Sidebar geoeffnet werden sollen
 +    var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 +
 +    observerService.addObserver(aios_DownloadObserver, "dl-start",  false);
 +    observerService.addObserver(aios_DownloadObserver, "dl-done",  false);
 +
 +    // Observer beim Schliessen des Fensters wieder loeschen
 +    window.addEventListener("unload", function() {
 +        if(aios_DownloadObserver) {
 +            var aios_myOs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 +            aios_myOs.removeObserver(aios_DownloadObserver, "dl-start");
 +            aios_myOs.removeObserver(aios_DownloadObserver, "dl-done");
 +            aios_DownloadObserver = null;
 +        }
 +
 +    }, false);
 +
 +
 +
 +    return true;
 +}
 +
 +/*
 +    Oeffnet die Sidebar,
 +        1. wenn ein Download gestartet wird ...
 +        2. der Manager geoeffnet werden soll und ...
 +        3. das Ziel die Sidebar sein soll
 +*/
 +var aios_DownloadObserver = {
 +    observe: function (aSubject, aTopic, aState) {
 +
 +        var autoOpen = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoopen');
 +        var autoClose = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoclose');
 +        var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);
 +
 +        switch (aTopic) {
 +            case "dl-start":
 +                var comElem = document.getElementById('Tools:Downloads');
 +                if(autoOpen && comElem.getAttribute('oncommand').indexOf('viewDownloadsSidebar') >= 0) {
 +                    // AiOS_HELPER.windowWatcher.activeWindow verhindert, dass die Sidebar in jedem Fenster geoeffnet wird
 +                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar("viewDownloadsSidebar", true);
 +                }
 +                break;
 +
 +            case "dl-done":
 +                var sideSrc = document.getElementById('sidebar').getAttribute('src');
 +                if(autoOpen && autoClose && sideSrc.indexOf('downloads.xul') >= 0) {
 +                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar();
 +                }
 +                break;
 +        }
 +    }
 +};
 +
 +
 +/*
 +  verhindert, dass bei Klick + Shift oder Strg der normale Command-Befehl und die Doppelfunktion ausgefuehrt wird
 +    => Aufruf durch die
 +*/
 +function aios_preventDblCmd(ev) {
 +    // metaKey = Mac
 +    if(ev.shiftKey || ev.ctrlKey || ev.metaKey) {
 +        if(ev.explicitOriginalTarget.tagName == 'toolbarbutton' || ev.explicitOriginalTarget.tagName == 'menuitem') return false;
 +    }
 +    return true;
 +}
 +
 +
 +/*
 +    prueft, ob das Browserfenster maximiert ist oder sich im Vollbildmodus befindet
 +        => Aufruf durch aios_checkThinSwitch()
 +*/
 +function aios_isWinMax() {
 +    var windowMax = document.getElementById('main-window').getAttribute('sizemode') == "maximized";
 +
 +    var maxWidth = window.outerWidth > screen.availWidth;
 +    var maxHeight = window.outerHeight > screen.availHeight;
 +    if((maxWidth && maxHeight) || window.fullScreen) windowMax = true;
 +
 +    return windowMax;
 +}
 +
 +
 +/*
 +    prueft, ob die Sidebar gerade sichtbar/unsichtbar ist => abhaengig von der Sidebar-Methode
 +*/
 +function aios_isSidebarHidden() {
 +    aios_getObjects();
 +
 +    try {
 +        var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 +    }
 +    catch(e) { }
 +
 +    // CollapseByStyle-Methode if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.getAttribute('style') != "");
 +    if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.collapsed);
 +    else return fx_sidebarBox.hidden;
 +}
 +
 +
 +/*
 +    Autohide-Feature initialisieren
 +        => Aufruf durch aios_initSidebar() und aios_savePrefs()
 +*/
 +var aiosFocus = true;
 +function aios_initAutohide() {
 +    // Zustand des Autohide-Buttons einstellen
 +    document.getElementById('aios-enableAutohide').setAttribute('checked', AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.autoshow"));
 +
 +    // Autohide-Feature-Funktion hinzufuegen
 +    fx_sidebarBox.addEventListener("mouseover", function() {
 +        if(document.getElementById('appcontent'))
 +            document.getElementById('appcontent').addEventListener("mouseover", aios_autoShowHide, true);
 +    }, true);
 +
 +    window.addEventListener("focus", function(e) {
 +        aiosFocus = true;
 +    }, true);
 +    window.addEventListener("blur", function(e) {
 +        aiosFocus = false;
 +    }, true);
 +}
 +
 +
 +/*
 +    Autohide ein- bzw. ausschalten per Toolbarbutton
 +        => Aufruf durch broadcaster 'aios-enableAutohide'
 +*/
 +function aios_toggleAutohide(which) {
 +    try {
 +        AiOS_HELPER.prefBranchAiOS.setBoolPref("gen.switch.autoshow", aios_getBoolean(which, 'checked'));
 +    }
 +    catch(e) { }
  }
diff --cc content/aios_fx.js
index c9fcdd1,5411189..882358a
--- a/content/aios_fx.js
+++ b/content/aios_fx.js
@@@ -1,308 -1,131 +1,131 @@@
 -/*
 -  from chrome://browser/content/browser.js
 -*/
 -
 -/**
 - * Opens or closes the sidebar identified by commandID.
 - *
 - * @param commandID a string identifying the sidebar to toggle; see the
 - *                  note below. (Optional if a sidebar is already open.)
 - * @param forceOpen boolean indicating whether the sidebar should be
 - *                  opened regardless of its current state (optional).
 - * @note
 - * We expect to find a xul:broadcaster element with the specified ID.
 - * The following attributes on that element may be used and/or modified:
 - *  - id           (required) the string to match commandID. The convention
 - *                 is to use this naming scheme: 'view<sidebar-name>Sidebar'.
 - *  - sidebarurl   (required) specifies the URL to load in this sidebar.
 - *  - sidebartitle or label (in that order) specify the title to
 - *                 display on the sidebar.
 - *  - checked      indicates whether the sidebar is currently displayed.
 - *                 Note that toggleSidebar updates this attribute when
 - *                 it changes the sidebar's visibility.
 - *  - group        this attribute must be set to "sidebar".
 - */
 -// modified by exxile
 -//    => original: function toggleSidebar(commandID, forceOpen) {
 -if(aios_collapseSidebar) toggleSidebar = function(commandID, forceOpen) {
 -// end modified by exxile
 -
 -  var sidebarBox = document.getElementById("sidebar-box");
 -  if (!commandID)
 -    commandID = sidebarBox.getAttribute("sidebarcommand");
 -
 -  // added by exxile
 -  //    => sonst gibt es Fehler bei der 2. Druckvorschau, wenn SidebarCollapsing aktiv ist und die Sidebar zugeklappt
 -  //    => commandID ist in diesem Fall nicht definiert
 -  if(!commandID) return;
 -  // end added by exxile
 -
 -  var sidebarBroadcaster = document.getElementById(commandID);
 -  var sidebar = document.getElementById("sidebar"); // xul:browser
 -  var sidebarTitle = document.getElementById("sidebar-title");
 -  var sidebarSplitter = document.getElementById("sidebar-splitter");
 -
 -  if (sidebarBroadcaster.getAttribute("checked") == "true") {
 -    if (!forceOpen) {
 -      // Replace the document currently displayed in the sidebar with about:blank
 -      // so that we can free memory by unloading the page. We need to explicitly
 -      // create a new content viewer because the old one doesn't get destroyed
 -      // until about:blank has loaded (which does not happen as long as the
 -      // element is hidden).
 -
 -      // commented by exxile
 -      // sidebar.setAttribute("src", "about:blank");
 -      // sidebar.docShell.createAboutBlankContentViewer(null);
 -      // end commented by exxile
 -
 -      sidebarBroadcaster.removeAttribute("checked");
 -      sidebarBox.setAttribute("sidebarcommand", "");
 -
 -      // commented by exxile
 -      // sidebarTitle.value = "";
 -      // sidebarBox.hidden = true;
 -      // end commented by exxile
 -
 -      // added by exxile
 -      sidebarBox.removeAttribute('hidden');
 -      sidebarBox.collapsed = true;
 -      // CollapseByStyle-Methode sidebarBox.setAttribute('style', 'display:none;');
 -      // end added by exxile
 -
 -      sidebarSplitter.hidden = true;
 -      gBrowser.selectedBrowser.focus();
 -    } else {
 -      fireSidebarFocusedEvent();
 -    }
 -    return;
 -  }
 -
 -  // now we need to show the specified sidebar
 -
 -  // ..but first update the 'checked' state of all sidebar broadcasters
 -  var broadcasters = document.getElementsByAttribute("group", "sidebar");
 -  for (let broadcaster of broadcasters) {
 -    // skip elements that observe sidebar broadcasters and random
 -    // other elements
 -    if (broadcaster.localName != "broadcaster")
 -      continue;
 -
 -    if (broadcaster != sidebarBroadcaster)
 -      broadcaster.removeAttribute("checked");
 -    else
 -      sidebarBroadcaster.setAttribute("checked", "true");
 -  }
 -
 -  // commented by exxile
 -  // sidebarBox.hidden = false;
 -  // end commented by exxile
 -
 -  // added by exxile
 -  sidebarBox.removeAttribute('hidden');
 -  sidebarBox.removeAttribute('collapsed');
 -  // CollapseByStyle-Methode sidebarBox.removeAttribute('style');
 -  // end added by exxile
 -
 -  sidebarSplitter.hidden = false;
 -
 -  var url = sidebarBroadcaster.getAttribute("sidebarurl");
 -  var title = sidebarBroadcaster.getAttribute("sidebartitle");
 -  if (!title)
 -    title = sidebarBroadcaster.getAttribute("label");
 -  sidebar.setAttribute("src", url); // kick off async load
 -  sidebarBox.setAttribute("sidebarcommand", sidebarBroadcaster.id);
 -  sidebarTitle.value = title;
 -
 -  // We set this attribute here in addition to setting it on the <browser>
 -  // element itself, because the code in gBrowserInit.onUnload persists this
 -  // attribute, not the "src" of the <browser id="sidebar">. The reason it
 -  // does that is that we want to delay sidebar load a bit when a browser
 -  // window opens. See delayedStartup().
 -  sidebarBox.setAttribute("src", url);
 -
 -  if (sidebar.contentDocument.location.href != url)
 -    sidebar.addEventListener("load", sidebarOnLoad, true);
 -  else // older code handled this case, so we do it too
 -    fireSidebarFocusedEvent();
 -
 -// modified by exxile
 -//    => original: }
 -};
 +/*
- if(aios_collapseSidebar) BrowserStartup = function() {
-   var uriToLoad = null;
- 
-   // window.arguments[0]: URI to load (string), or an nsISupportsArray of
-   //                      nsISupportsStrings to load, or a xul:tab of
-   //                      a tabbrowser, which will be replaced by this
-   //                      window (for this case, all other arguments are
-   //                      ignored).
-   //                 [1]: character set (string)
-   //                 [2]: referrer (nsIURI)
-   //                 [3]: postData (nsIInputStream)
-   //                 [4]: allowThirdPartyFixup (bool)
-   if ("arguments" in window && window.arguments[0])
-     uriToLoad = window.arguments[0];
- 
-   var isLoadingBlank = uriToLoad == "about:blank";
-   var mustLoadSidebar = false;
- 
-   prepareForStartup();
- 
-   if (uriToLoad && !isLoadingBlank) {
-     if (uriToLoad instanceof Ci.nsISupportsArray) {
-       let count = uriToLoad.Count();
-       let specs = [];
-       for (let i = 0; i < count; i++) {
-         let urisstring = uriToLoad.GetElementAt(i).QueryInterface(Ci.nsISupportsString);
-         specs.push(urisstring.data);
-       }
- 
-       // This function throws for certain malformed URIs, so use exception handling
-       // so that we don't disrupt startup
-       try {
-         gBrowser.loadTabs(specs, false, true);
-       } catch (e) {}
-     }
-     else if (uriToLoad instanceof XULElement) {
-       // swap the given tab with the default about:blank tab and then close
-       // the original tab in the other window.
- 
-       // Stop the about:blank load
-       gBrowser.stop();
-       // make sure it has a docshell
-       gBrowser.docShell;
- 
-       gBrowser.swapBrowsersAndCloseOther(gBrowser.selectedTab, uriToLoad);
-     }
-     else if (window.arguments.length >= 3) {
-       loadURI(uriToLoad, window.arguments[2], window.arguments[3] || null,
-               window.arguments[4] || false);
-       content.focus();
-     }
-     // Note: loadOneOrMoreURIs *must not* be called if window.arguments.length >= 3.
-     // Such callers expect that window.arguments[0] is handled as a single URI.
-     else
-       loadOneOrMoreURIs(uriToLoad);
-   }
- 
-   if (window.opener && !window.opener.closed) {
-     let openerSidebarBox = window.opener.document.getElementById("sidebar-box");
-     // If the opener had a sidebar, open the same sidebar in our window.
-     // The opener can be the hidden window too, if we're coming from the state
-     // where no windows are open, and the hidden window has no sidebar box.
-     // mod by exxile if (openerSidebarBox && !openerSidebarBox.hidden) {
-     // CollapseByStyle-Methode if (openerSidebarBox && !openerSidebarBox.hidden && openerSidebarBox.getAttribute('style') == "") {
-     if (openerSidebarBox && !openerSidebarBox.hidden && !openerSidebarBox.collapsed) {
-       let sidebarCmd = openerSidebarBox.getAttribute("sidebarcommand");
-       let sidebarCmdElem = document.getElementById(sidebarCmd);
- 
-       // dynamically generated sidebars will fail this check.
-       if (sidebarCmdElem) {
-         let sidebarBox = document.getElementById("sidebar-box");
-         let sidebarTitle = document.getElementById("sidebar-title");
- 
-         sidebarTitle.setAttribute(
-           "value", window.opener.document.getElementById("sidebar-title").getAttribute("value"));
-         sidebarBox.setAttribute("width", openerSidebarBox.boxObject.width);
- 
-         sidebarBox.setAttribute("sidebarcommand", sidebarCmd);
-         // Note: we're setting 'src' on sidebarBox, which is a <vbox>, not on
-         // the <browser id="sidebar">. This lets us delay the actual load until
-         // delayedStartup().
-         sidebarBox.setAttribute(
-           "src", window.opener.document.getElementById("sidebar").getAttribute("src"));
-         mustLoadSidebar = true;
- 
-         sidebarBox.hidden = false;
-         document.getElementById("sidebar-splitter").hidden = false;
-         sidebarCmdElem.setAttribute("checked", "true");
-       }
-     }
-   }
-   else {
-     let box = document.getElementById("sidebar-box");
-     if (box.hasAttribute("sidebarcommand")) {
-       let commandID = box.getAttribute("sidebarcommand");
-       if (commandID) {
-         let command = document.getElementById(commandID);
-         if (command) {
-           mustLoadSidebar = true;
-           box.hidden = false;
-           document.getElementById("sidebar-splitter").hidden = false;
-           command.setAttribute("checked", "true");
-         }
-         else {
-           // Remove the |sidebarcommand| attribute, because the element it
-           // refers to no longer exists, so we should assume this sidebar
-           // panel has been uninstalled. (249883)
-           box.removeAttribute("sidebarcommand");
-         }
-       }
-     }
-   }
- 
-   // Certain kinds of automigration rely on this notification to complete their
-   // tasks BEFORE the browser window is shown.
-   Services.obs.notifyObservers(null, "browser-window-before-show", "");
- 
-   // Set a sane starting width/height for all resolutions on new profiles.
-   if (!document.documentElement.hasAttribute("width")) {
-     let defaultWidth = 994;
-     let defaultHeight;
-     if (screen.availHeight <= 600) {
-       document.documentElement.setAttribute("sizemode", "maximized");
-       defaultWidth = 610;
-       defaultHeight = 450;
-     }
-     else {
-       // Create a narrower window for large or wide-aspect displays, to suggest
-       // side-by-side page view.
-       if (screen.availWidth >= 1600)
-         defaultWidth = (screen.availWidth / 2) - 20;
-       defaultHeight = screen.availHeight - 10;
- //@line 1344 "e:\builds\moz2_slave\rel-m-beta-w32-bld\build\browser\base\content\browser.js"
-     }
-     document.documentElement.setAttribute("width", defaultWidth);
-     document.documentElement.setAttribute("height", defaultHeight);
-   }
- 
-   if (!gShowPageResizers)
-     document.getElementById("status-bar").setAttribute("hideresizer", "true");
- 
-   if (!window.toolbar.visible) {
-     // adjust browser UI for popups
-     if (gURLBar) {
-       gURLBar.setAttribute("readonly", "true");
-       gURLBar.setAttribute("enablehistory", "false");
-     }
-     goSetCommandEnabled("cmd_newNavigatorTab", false);
-   }
- 
- //@line 1362 "e:\builds\moz2_slave\rel-m-beta-w32-bld\build\browser\base\content\browser.js"
-     //mod by exxile: updateAppButtonDisplay();
-     if(AiOS_HELPER.os != "Darwin") updateAppButtonDisplay();
- //@line 1364 "e:\builds\moz2_slave\rel-m-beta-w32-bld\build\browser\base\content\browser.js"
- 
-   CombinedStopReload.init();
- 
-   allTabs.readPref();
- 
-   // mod by exxile: init >= Fx 12, syncCommand <= Fx 11
-   (typeof TabsOnTop.init == "function") ? TabsOnTop.init() : TabsOnTop.syncCommand();
- 
-   BookmarksMenuButton.init();
- 
-   TabsInTitlebar.init();
- 
-   gPrivateBrowsingUI.init();
- 
-   retrieveToolbarIconsizesFromTheme();
- 
-   gDelayedStartupTimeoutId = window.setTimeout(function() {
-       delayedStartup(isLoadingBlank, mustLoadSidebar);
-   }, 0);
- 
-   gStartupRan = true;
- }
- */
- 
- 
- /*
 +  from chrome://browser/content/browser.js
 +*/
 +
 +/**
 + * Opens or closes the sidebar identified by commandID.
 + *
 + * @param commandID a string identifying the sidebar to toggle; see the
 + *                  note below. (Optional if a sidebar is already open.)
 + * @param forceOpen boolean indicating whether the sidebar should be
 + *                  opened regardless of its current state (optional).
 + * @note
 + * We expect to find a xul:broadcaster element with the specified ID.
 + * The following attributes on that element may be used and/or modified:
 + *  - id           (required) the string to match commandID. The convention
 + *                 is to use this naming scheme: 'view<sidebar-name>Sidebar'.
 + *  - sidebarurl   (required) specifies the URL to load in this sidebar.
 + *  - sidebartitle or label (in that order) specify the title to
 + *                 display on the sidebar.
 + *  - checked      indicates whether the sidebar is currently displayed.
 + *                 Note that toggleSidebar updates this attribute when
 + *                 it changes the sidebar's visibility.
 + *  - group        this attribute must be set to "sidebar".
 + */
 +// modified by exxile
 +//    => original: function toggleSidebar(commandID, forceOpen) {
 +if(aios_collapseSidebar) toggleSidebar = function(commandID, forceOpen) {
 +// end modified by exxile
 +
 +  var sidebarBox = document.getElementById("sidebar-box");
 +  if (!commandID)
 +    commandID = sidebarBox.getAttribute("sidebarcommand");
 +
 +  // added by exxile
 +  //    => sonst gibt es Fehler bei der 2. Druckvorschau, wenn SidebarCollapsing aktiv ist und die Sidebar zugeklappt
 +  //    => commandID ist in diesem Fall nicht definiert
 +  if(!commandID) return;
 +  // end added by exxile
 +
 +  var sidebarBroadcaster = document.getElementById(commandID);
 +  var sidebar = document.getElementById("sidebar"); // xul:browser
 +  var sidebarTitle = document.getElementById("sidebar-title");
 +  var sidebarSplitter = document.getElementById("sidebar-splitter");
 +
 +  if (sidebarBroadcaster.getAttribute("checked") == "true") {
 +    if (!forceOpen) {
 +      // Replace the document currently displayed in the sidebar with about:blank
 +      // so that we can free memory by unloading the page. We need to explicitly
 +      // create a new content viewer because the old one doesn't get destroyed
 +      // until about:blank has loaded (which does not happen as long as the
 +      // element is hidden).
-       sidebar.setAttribute("src", "about:blank");
-       sidebar.docShell.createAboutBlankContentViewer(null);
++
++      // commented by exxile
++      // sidebar.setAttribute("src", "about:blank");
++      // sidebar.docShell.createAboutBlankContentViewer(null);
++      // end commented by exxile
 +
 +      sidebarBroadcaster.removeAttribute("checked");
 +      sidebarBox.setAttribute("sidebarcommand", "");
 +
 +      // commented by exxile
 +      // sidebarTitle.value = "";
 +      // sidebarBox.hidden = true;
 +      // end commented by exxile
 +
 +      // added by exxile
 +      sidebarBox.removeAttribute('hidden');
 +      sidebarBox.collapsed = true;
 +      // CollapseByStyle-Methode sidebarBox.setAttribute('style', 'display:none;');
 +      // end added by exxile
 +
 +      sidebarSplitter.hidden = true;
 +      gBrowser.selectedBrowser.focus();
 +    } else {
 +      fireSidebarFocusedEvent();
 +    }
 +    return;
 +  }
 +
 +  // now we need to show the specified sidebar
 +
 +  // ..but first update the 'checked' state of all sidebar broadcasters
 +  var broadcasters = document.getElementsByAttribute("group", "sidebar");
 +  for (let broadcaster of broadcasters) {
 +    // skip elements that observe sidebar broadcasters and random
 +    // other elements
 +    if (broadcaster.localName != "broadcaster")
 +      continue;
 +
 +    if (broadcaster != sidebarBroadcaster)
 +      broadcaster.removeAttribute("checked");
 +    else
 +      sidebarBroadcaster.setAttribute("checked", "true");
 +  }
 +
 +  // commented by exxile
 +  // sidebarBox.hidden = false;
 +  // end commented by exxile
 +
 +  // added by exxile
 +  sidebarBox.removeAttribute('hidden');
 +  sidebarBox.removeAttribute('collapsed');
 +  // CollapseByStyle-Methode sidebarBox.removeAttribute('style');
 +  // end added by exxile
 +
 +  sidebarSplitter.hidden = false;
 +
 +  var url = sidebarBroadcaster.getAttribute("sidebarurl");
 +  var title = sidebarBroadcaster.getAttribute("sidebartitle");
 +  if (!title)
 +    title = sidebarBroadcaster.getAttribute("label");
 +  sidebar.setAttribute("src", url); // kick off async load
 +  sidebarBox.setAttribute("sidebarcommand", sidebarBroadcaster.id);
 +  sidebarTitle.value = title;
 +
 +  // We set this attribute here in addition to setting it on the <browser>
 +  // element itself, because the code in gBrowserInit.onUnload persists this
 +  // attribute, not the "src" of the <browser id="sidebar">. The reason it
 +  // does that is that we want to delay sidebar load a bit when a browser
 +  // window opens. See delayedStartup().
 +  sidebarBox.setAttribute("src", url);
 +
 +  if (sidebar.contentDocument.location.href != url)
 +    sidebar.addEventListener("load", sidebarOnLoad, true);
 +  else // older code handled this case, so we do it too
 +    fireSidebarFocusedEvent();
 +
 +// modified by exxile
 +//    => original: }
 +};
  // end modified by exxile
diff --cc install.rdf
index f98cfab,453f299..af90d06
--- a/install.rdf
+++ b/install.rdf
@@@ -1,30 -1,30 +1,30 @@@
 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 -
 -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 -    <Description about="urn:mozilla:install-manifest">
 -        <em:name>All-in-One Sidebar</em:name>
 -        <em:version>0.7.24</em:version>
 -        <em:description>Sidebar control with award-winning user experience!</em:description>
 -        <em:creator>Ingo Wennemaring</em:creator>
 -
 -        <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
 -        <em:type>2</em:type>
 -
 -        <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
 -        <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
 -        <em:homepageURL>http://addonlab.com</em:homepageURL>
 -        <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
 -
 -        <em:targetApplication>
 -
 -            <!-- Firefox -->
 -            <Description>
 -                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
 -                <em:minVersion>32.0</em:minVersion>
 -                <em:maxVersion>33.*</em:maxVersion>
 -            </Description>
 -
 -        </em:targetApplication>
 -
 -    </Description>
 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
 +<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 +    <Description about="urn:mozilla:install-manifest">
 +        <em:name>All-in-One Sidebar</em:name>
-         <em:version>0.7.23</em:version>
++        <em:version>0.7.24</em:version>
 +        <em:description>Sidebar control with award-winning user experience!</em:description>
 +        <em:creator>Ingo Wennemaring</em:creator>
 +
 +        <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
 +        <em:type>2</em:type>
 +
 +        <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
 +        <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
 +        <em:homepageURL>http://addonlab.com</em:homepageURL>
 +        <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
 +
 +        <em:targetApplication>
 +
 +            <!-- Firefox -->
 +            <Description>
 +                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-                 <em:minVersion>29.0</em:minVersion>
-                 <em:maxVersion>31.*</em:maxVersion>
++                <em:minVersion>32.0</em:minVersion>
++                <em:maxVersion>33.*</em:maxVersion>
 +            </Description>
 +
 +        </em:targetApplication>
 +
 +    </Description>
- </RDF>
+ </RDF>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/all-in-one-sidebar.git



More information about the Pkg-mozext-commits mailing list