protected virtual void OnWindowStateEvent(object sender, Gtk.WindowStateEventArgs e)
{
Trace.Call(sender, e);
try {
// handle minimize / un-minimize
if ((e.Event.ChangedMask & Gdk.WindowState.Iconified) != 0) {
IsMinimized = (e.Event.NewWindowState & Gdk.WindowState.Iconified) != 0;
#if LOG4NET
f_Logger.Debug("OnWindowStateEvent(): IsMinimized: " + IsMinimized);
#endif
#if DISABLED
// BUG: metacity is not allowing us to use the minimize state
// to hide and enable the notfication area icon as switching
// to a different workspace sets WindowState.Iconified on all
// windows, thus this code is disabled. For more details see:
// http://projects.qnetp.net/issues/show/158
Hide();
#endif
if (IsMinimized) {
if (Minimized != null) {
Minimized(this, EventArgs.Empty);
}
} else {
if (Unminimized != null) {
Unminimized(this, EventArgs.Empty);
}
}
}
// handle maximize / un-maximize
if ((e.Event.ChangedMask & Gdk.WindowState.Maximized) != 0) {
IsMaximized = (e.Event.NewWindowState & Gdk.WindowState.Maximized) != 0;
#if LOG4NET
f_Logger.Debug("OnWindowStateEvent(): IsMaximized: " + IsMaximized);
#endif
GLib.Idle.Add(() => {
CheckLayout();
return false;
});
}
} catch (Exception ex) {
Frontend.ShowException(this, ex);
}
}