diff -c -r pekwm-0.1.3/src/Frame.cc pekwm-0.1.3-ms/src/Frame.cc *** pekwm-0.1.3/src/Frame.cc Thu Jun 5 21:12:14 2003 --- pekwm-0.1.3-ms/src/Frame.cc Sun Nov 9 09:40:38 2003 *************** *** 2295,2300 **** --- 2295,2313 ---- // update the stacking if (ev->value_mask&CWStackMode) { + #if( !defined( ORIGINAL_CODE ) ) + // if the client is iconified, it has to be de-iconified first! + // this fixes the annoying bug I have with emacs. When I use + // emacs find-file-other-frame, if the frame is iconified, + // it is not uniconified by pekwm. + if( client->_iconified ) + { + Frame *frame = client->getFrame(); + + frame->raise(); + frame->mapWindow(); + } + #endif if (ev->value_mask&CWSibling) { switch(ev->detail) { case Above: diff -c -r pekwm-0.1.3/src/WindowManager.cc pekwm-0.1.3-ms/src/WindowManager.cc *** pekwm-0.1.3/src/WindowManager.cc Thu Jun 5 21:12:14 2003 --- pekwm-0.1.3-ms/src/WindowManager.cc Sun Nov 9 09:40:29 2003 *************** *** 812,817 **** --- 812,820 ---- } if ((_config->getFocusMask()&FOCUS_CLICK) && // TO-DO: Always this way? + #if( !defined( ORIGINAL_CODE ) ) + client && + #endif (client != _focused_client) && (ev->button == BUTTON1)) { client->getFrame()->giveInputFocus(); } *************** *** 1480,1487 **** _workspaces->hideAll(_workspaces->getActive()); setAtomLongValue(_screen->getRoot(), _ewmh_atoms->getAtom(NET_CURRENT_DESKTOP), workspace); _workspaces->unhideAll(workspace, focus); ! _screen->ungrabServer(true); } --- 1483,1493 ---- _workspaces->hideAll(_workspaces->getActive()); setAtomLongValue(_screen->getRoot(), _ewmh_atoms->getAtom(NET_CURRENT_DESKTOP), workspace); + #if( !defined( ORIGINAL_CODE ) ) + _workspaces->unhideAll(workspace, 0); + #else _workspaces->unhideAll(workspace, focus); ! #endif _screen->ungrabServer(true); }