internal override void Activate(IntPtr handle) {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
if (hwnd != null) {
lock (XlibLock) {
if (true /* the window manager supports NET_ACTIVE_WINDOW */) {
SendNetWMMessage(hwnd.whole_window, _NET_ACTIVE_WINDOW, (IntPtr)1, IntPtr.Zero, IntPtr.Zero);
XEventQueue q = null;
lock (unattached_timer_list) {
foreach (Timer t in unattached_timer_list) {
if (q == null)
q= (XEventQueue) MessageQueues [Thread.CurrentThread];
t.thread = q.Thread;
q.timer_list.Add (t);
}
unattached_timer_list.Clear ();
}
}
// else {
// XRaiseWindow(DisplayHandle, handle);
// }
}
}
}