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:
parent
97e488e232
commit
90ee9f834b
@ -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() {
|
||||
|
@ -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;"/>
|
||||
|
@ -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
|
||||
|
@ -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">
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user