mirror of
https://github.com/moparisthebest/FireTray
synced 2024-08-13 15:53:47 -04:00
yet another attempt to fix restore maximized window. This is tricky because it
can break restore minimized (hides_on_minimize off)
This commit is contained in:
parent
601554a63f
commit
d77724d46b
@ -290,10 +290,17 @@ firetray.Window = {
|
|||||||
log.debug("save: windowStates="+winStates);
|
log.debug("save: windowStates="+winStates);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// NOTE: fluxbox bug probably: if hidden and restored iconified, then
|
||||||
|
// switching to desktop de-iconifies it ?!
|
||||||
restoreStates: function(xid) {
|
restoreStates: function(xid) {
|
||||||
let winStates = firetray.Handler.windows[xid].savedStates;
|
let winStates = firetray.Handler.windows[xid].savedStates;
|
||||||
log.debug("restored WindowStates: " + winStates);
|
log.debug("restored WindowStates: " + winStates);
|
||||||
|
|
||||||
|
if (winStates & FIRETRAY_XWINDOW_HIDDEN) {
|
||||||
|
firetray.Handler.windows[xid].chromeWin.minimize();
|
||||||
|
log.debug("restored minimized");
|
||||||
|
}
|
||||||
|
|
||||||
/* helps prevent getting iconify event following show() */
|
/* helps prevent getting iconify event following show() */
|
||||||
if (firetray.Utils.prefService.getBoolPref('hides_on_minimize'))
|
if (firetray.Utils.prefService.getBoolPref('hides_on_minimize'))
|
||||||
firetray.Handler.windows[xid].chromeWin.restore(); // nsIDOMChromeWindow.idl
|
firetray.Handler.windows[xid].chromeWin.restore(); // nsIDOMChromeWindow.idl
|
||||||
@ -303,11 +310,6 @@ firetray.Window = {
|
|||||||
log.debug("restored maximized");
|
log.debug("restored maximized");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (winStates & FIRETRAY_XWINDOW_HIDDEN) {
|
|
||||||
firetray.Handler.windows[xid].chromeWin.minimize();
|
|
||||||
log.debug("restored minimized");
|
|
||||||
}
|
|
||||||
|
|
||||||
delete firetray.Handler.windows[xid].savedStates;
|
delete firetray.Handler.windows[xid].savedStates;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -522,6 +524,8 @@ firetray.Window = {
|
|||||||
|
|
||||||
case x11.MapNotify:
|
case x11.MapNotify:
|
||||||
log.debug("MapNotify");
|
log.debug("MapNotify");
|
||||||
|
let gdkWinStateOnMap = gdk.gdk_window_get_state(firetray.Handler.gdkWindows.get(xid));
|
||||||
|
log.debug("gdkWinState="+gdkWinStateOnMap+" for xid="+xid);
|
||||||
let win = firetray.Handler.windows[xid];
|
let win = firetray.Handler.windows[xid];
|
||||||
if (!win.visible && firetray.Handler.appStarted) { // happens when hidden app called from command line
|
if (!win.visible && firetray.Handler.appStarted) { // happens when hidden app called from command line
|
||||||
log.warn("window not visible, correcting visibility");
|
log.warn("window not visible, correcting visibility");
|
||||||
@ -531,10 +535,11 @@ firetray.Window = {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case x11.UnmapNotify: // for catching 'iconify'
|
case x11.UnmapNotify: // for catching 'iconify'
|
||||||
let gdkWinState = gdk.gdk_window_get_state(firetray.Handler.gdkWindows.get(xid));
|
log.debug("UnmapNotify");
|
||||||
log.debug("gdkWinState="+gdkWinState+" for xid="+xid);
|
let gdkWinStateOnUnmap = gdk.gdk_window_get_state(firetray.Handler.gdkWindows.get(xid));
|
||||||
|
log.debug("gdkWinStateOnUnmap="+gdkWinStateOnUnmap+" for xid="+xid);
|
||||||
// NOTE: Gecko 8.0 provides the 'sizemodechange' event
|
// NOTE: Gecko 8.0 provides the 'sizemodechange' event
|
||||||
if (gdkWinState === gdk.GDK_WINDOW_STATE_ICONIFIED) {
|
if (gdkWinStateOnUnmap & gdk.GDK_WINDOW_STATE_ICONIFIED) {
|
||||||
log.debug("GOT ICONIFIED");
|
log.debug("GOT ICONIFIED");
|
||||||
let hides_on_minimize = firetray.Utils.prefService.getBoolPref('hides_on_minimize');
|
let hides_on_minimize = firetray.Utils.prefService.getBoolPref('hides_on_minimize');
|
||||||
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
|
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
|
||||||
|
Loading…
Reference in New Issue
Block a user