mirror of
https://github.com/moparisthebest/FireTray
synced 2025-01-09 04:28:16 -05:00
attempt to catch minimize event that would be issued in Ubuntu 11.10
This commit is contained in:
parent
b8346e36c3
commit
b2f270687d
@ -74,11 +74,41 @@ function x11_defines(lib) {
|
|||||||
this.PropModePrepend = 1;
|
this.PropModePrepend = 1;
|
||||||
this.PropModeAppend = 2;
|
this.PropModeAppend = 2;
|
||||||
// Event names
|
// Event names
|
||||||
this.DestroyNotify = 17;
|
this.KeyPress = 2;
|
||||||
this.UnmapNotify = 18;
|
this.KeyRelease = 3;
|
||||||
this.MapNotify = 19;
|
this.ButtonPress = 4;
|
||||||
this.PropertyNotify = 28;
|
this.ButtonRelease = 5;
|
||||||
this.ClientMessage = 33;
|
this.MotionNotify = 6;
|
||||||
|
this.EnterNotify = 7;
|
||||||
|
this.LeaveNotify = 8;
|
||||||
|
this.FocusIn = 9;
|
||||||
|
this.FocusOut = 10;
|
||||||
|
this.KeymapNotify = 11;
|
||||||
|
this.Expose = 12;
|
||||||
|
this.GraphicsExpose = 13;
|
||||||
|
this.NoExpose = 14;
|
||||||
|
this.VisibilityNotify = 15;
|
||||||
|
this.CreateNotify = 16;
|
||||||
|
this.DestroyNotify = 17;
|
||||||
|
this.UnmapNotify = 18;
|
||||||
|
this.MapNotify = 19;
|
||||||
|
this.MapRequest = 20;
|
||||||
|
this.ReparentNotify = 21;
|
||||||
|
this.ConfigureNotify = 22;
|
||||||
|
this.ConfigureRequest = 23;
|
||||||
|
this.GravityNotify = 24;
|
||||||
|
this.ResizeRequest = 25;
|
||||||
|
this.CirculateNotify = 26;
|
||||||
|
this.CirculateRequest = 27;
|
||||||
|
this.PropertyNotify = 28;
|
||||||
|
this.SelectionClear = 29;
|
||||||
|
this.SelectionRequest = 30;
|
||||||
|
this.SelectionNotify = 31;
|
||||||
|
this.ColormapNotify = 32;
|
||||||
|
this.ClientMessage = 33;
|
||||||
|
this.MappingNotify = 34;
|
||||||
|
this.GenericEvent = 35;
|
||||||
|
this.LASTEvent = 36; /* must be bigger than any event # */
|
||||||
// Xutils.h: definitions for initial window state
|
// Xutils.h: definitions for initial window state
|
||||||
this.WithdrawnState = 0; /* for windows that are not mapped */
|
this.WithdrawnState = 0; /* for windows that are not mapped */
|
||||||
this.NormalState = 1; /* most applications want to start this way */
|
this.NormalState = 1; /* most applications want to start this way */
|
||||||
|
@ -472,12 +472,13 @@ firetray.Window = {
|
|||||||
let xany = ctypes.cast(xev, x11.XAnyEvent.ptr);
|
let xany = ctypes.cast(xev, x11.XAnyEvent.ptr);
|
||||||
let xwin = xany.contents.window;
|
let xwin = xany.contents.window;
|
||||||
|
|
||||||
|
let winStates, isHidden;
|
||||||
switch (xany.contents.type) {
|
switch (xany.contents.type) {
|
||||||
|
|
||||||
case x11.UnmapNotify:
|
case x11.UnmapNotify:
|
||||||
F.LOG("UnmapNotify");
|
F.LOG("UnmapNotify");
|
||||||
let winStates = firetray.Window.getXWindowStates(xwin);
|
winStates = firetray.Window.getXWindowStates(xwin);
|
||||||
let isHidden = winStates & FIRETRAY_XWINDOW_HIDDEN;
|
isHidden = winStates & FIRETRAY_XWINDOW_HIDDEN;
|
||||||
F.LOG("winStates="+winStates+", isHidden="+isHidden);
|
F.LOG("winStates="+winStates+", isHidden="+isHidden);
|
||||||
if (isHidden) {
|
if (isHidden) {
|
||||||
let hides_on_minimize = firetray.Utils.prefService.getBoolPref('hides_on_minimize');
|
let hides_on_minimize = firetray.Utils.prefService.getBoolPref('hides_on_minimize');
|
||||||
@ -486,15 +487,27 @@ firetray.Window = {
|
|||||||
if (hides_single_window) {
|
if (hides_single_window) {
|
||||||
firetray.Handler.hideSingleWindow(xwin);
|
firetray.Handler.hideSingleWindow(xwin);
|
||||||
} else
|
} else
|
||||||
firetray.Handler.hideAllWindows();
|
firetray.Handler.hideAllWindows();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case x11.PropertyNotify:
|
||||||
// F.LOG("xany.type="+xany.contents.type);
|
let xprop = ctypes.cast(xev, x11.XPropertyEvent.ptr);
|
||||||
|
if (firetray.js.strEquals(xprop.contents.atom, x11.current.Atoms.WM_STATE) &&
|
||||||
|
firetray.js.strEquals(xprop.contents.state, x11.PropertyNewValue)) {
|
||||||
|
F.LOG("PropertyNotify: "+xprop.contents.atom+" send_event: "+xprop.contents.send_event+" state: "+xprop.contents.state);
|
||||||
|
winStates = firetray.Window.getXWindowStates(xwin);
|
||||||
|
isHidden = winStates & FIRETRAY_XWINDOW_HIDDEN;
|
||||||
|
if (isHidden) F.WARN("*** HIDDEN ***");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// default:
|
||||||
|
// F.LOG("xany.type="+xany.contents.type);
|
||||||
|
// break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch(x) {
|
} catch(x) {
|
||||||
F.ERROR(x);
|
F.ERROR(x);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user