1
0
mirror of https://github.com/moparisthebest/FireTray synced 2024-08-13 15:53:47 -04:00

option to hide only last window (#24)

This commit is contained in:
foudfou 2012-09-10 15:00:25 +02:00
parent 97e488e232
commit 90ee9f834b
6 changed files with 26 additions and 9 deletions

View File

@ -108,8 +108,9 @@ var firetrayUIOptions = {
let hides_on_close = document.getElementById("ui_hides_on_close").checked;
let hides_on_minimize = document.getElementById("ui_hides_on_minimize").checked;
log.debug("hides_on_close="+hides_on_close+", hides_on_minimize="+hides_on_minimize);
document.getElementById('ui_hides_single_window').disabled =
!(hides_on_close || hides_on_minimize);
let doDisable = !(hides_on_close || hides_on_minimize);
document.getElementById('ui_hides_single_window').disabled = doDisable;
document.getElementById('ui_hides_last_only').disabled = doDisable;
},
updateScrollOptions: function() {

View File

@ -23,6 +23,7 @@
<preference id="pref_hides_on_close" name="extensions.firetray.hides_on_close" type="bool"/>
<preference id="pref_hides_on_minimize" name="extensions.firetray.hides_on_minimize" type="bool"/>
<preference id="pref_hides_single_window" name="extensions.firetray.hides_single_window" type="bool"/>
<preference id="pref_hides_last_only" name="extensions.firetray.hides_last_only" type="bool"/>
<preference id="pref_start_hidden" name="extensions.firetray.start_hidden" type="bool"/>
<preference id="pref_show_activates" name="extensions.firetray.show_activates" type="bool"/>
<preference id="pref_remember_desktop" name="extensions.firetray.remember_desktop" type="bool"/>
@ -41,6 +42,10 @@
label="&hides_single_window.label;"
accesskey="&hides_single_window.accesskey;"
tooltiptext="&hides_single_window.tooltip;"/>
<checkbox id="ui_hides_last_only" preference="pref_hides_last_only"
label="&hides_last_only.label;"
accesskey="&hides_last_only.accesskey;"
tooltiptext="&hides_last_only.tooltip;"/>
<checkbox id="ui_start_hidden" preference="pref_start_hidden"
label="&start_hidden.label;"
accesskey="&start_hidden.accesskey;"/>

View File

@ -31,12 +31,13 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
return true;
},
/* NOTE: don't do firetray.Handler.initialized=false here, otherwise after a
window close, a new window will create a new handler (and hence, a new tray
icon) */
onQuit: function(win) {
firetray.Handler.unregisterWindow(win);
/* NOTE: don't do firetray.Handler.initialized=false here, otherwise after
a window close, a new window will create a new handler (and hence, a new
tray icon) */
log.info("windowsCount="+firetray.Handler.windowsCount+", visibleWindowsCount="+firetray.Handler.visibleWindowsCount);
log.debug('Firetray UNLOADED !');
},
@ -52,9 +53,13 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
throw new TypeError('originalTarget not a ChromeWindow');
let hides_on_close = firetray.Utils.prefService.getBoolPref('hides_on_close');
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
log.debug('hides_on_close: '+hides_on_close+', hides_single_window='+hides_single_window);
log.debug('hides_on_close: '+hides_on_close);
if (hides_on_close) {
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
let hides_last_only = firetray.Utils.prefService.getBoolPref('hides_last_only');
log.debug('hides_single_window='+hides_single_window+', windowsCount='+firetray.Handler.windowsCount);
if (hides_last_only && (firetray.Handler.windowsCount > 1)) return;
if (hides_single_window) {
firetray.Handler.hideWindow(firetrayChrome.winId);
} else

View File

@ -16,6 +16,9 @@
<!ENTITY hides_single_window.label "Hide windows individually">
<!ENTITY hides_single_window.tooltip "not all windows at once">
<!ENTITY hides_single_window.accesskey "H">
<!ENTITY hides_last_only.label "Only last window can be hidden">
<!ENTITY hides_last_only.tooltip "other windows will be closed (terminated)">
<!ENTITY hides_last_only.accesskey "O">
<!ENTITY start_hidden.label "Start application hidden to tray">
<!ENTITY start_hidden.accesskey "S">
<!ENTITY show_activates.label "Activate restored windows">

View File

@ -7,6 +7,7 @@ pref("extensions.firetray.firstrun", true);
pref("extensions.firetray.hides_on_close", true);
pref("extensions.firetray.hides_on_minimize", true);
pref("extensions.firetray.hides_single_window", true);
pref("extensions.firetray.hides_last_only", true);
pref("extensions.firetray.start_hidden", false);
pref("extensions.firetray.show_activates", false);
pref("extensions.firetray.remember_desktop", false);

View File

@ -206,9 +206,11 @@ firetray.Window = {
throw new DeleteError();
firetray.Handler.gtkWindows.remove(xid);
firetray.Handler.gdkWindows.remove(xid);
firetray.PopupMenu.removeWindowItem(xid);
firetray.Handler.windowsCount -= 1;
firetray.Handler.visibleWindowsCount -= 1;
firetray.PopupMenu.removeWindowItem(xid);
log.debug("window "+xid+" unregistered");
return true;
},