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);
|
||||
},
|
||||
|
||||
// NOTE: fluxbox bug probably: if hidden and restored iconified, then
|
||||
// switching to desktop de-iconifies it ?!
|
||||
restoreStates: function(xid) {
|
||||
let winStates = firetray.Handler.windows[xid].savedStates;
|
||||
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() */
|
||||
if (firetray.Utils.prefService.getBoolPref('hides_on_minimize'))
|
||||
firetray.Handler.windows[xid].chromeWin.restore(); // nsIDOMChromeWindow.idl
|
||||
@ -303,11 +310,6 @@ firetray.Window = {
|
||||
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;
|
||||
},
|
||||
|
||||
@ -522,6 +524,8 @@ firetray.Window = {
|
||||
|
||||
case x11.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];
|
||||
if (!win.visible && firetray.Handler.appStarted) { // happens when hidden app called from command line
|
||||
log.warn("window not visible, correcting visibility");
|
||||
@ -531,10 +535,11 @@ firetray.Window = {
|
||||
break;
|
||||
|
||||
case x11.UnmapNotify: // for catching 'iconify'
|
||||
let gdkWinState = gdk.gdk_window_get_state(firetray.Handler.gdkWindows.get(xid));
|
||||
log.debug("gdkWinState="+gdkWinState+" for xid="+xid);
|
||||
log.debug("UnmapNotify");
|
||||
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
|
||||
if (gdkWinState === gdk.GDK_WINDOW_STATE_ICONIFIED) {
|
||||
if (gdkWinStateOnUnmap & gdk.GDK_WINDOW_STATE_ICONIFIED) {
|
||||
log.debug("GOT ICONIFIED");
|
||||
let hides_on_minimize = firetray.Utils.prefService.getBoolPref('hides_on_minimize');
|
||||
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
|
||||
|
Loading…
Reference in New Issue
Block a user