added action RootMenu
This commit is contained in:
parent
b7ca86795e
commit
4d6f6ba54f
1 changed files with 43 additions and 2 deletions
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: fluxbox.cc,v 1.46 2002/04/08 22:36:30 fluxgen Exp $
|
// $Id: fluxbox.cc,v 1.47 2002/04/09 09:42:16 fluxgen Exp $
|
||||||
|
|
||||||
//Use some GNU extensions
|
//Use some GNU extensions
|
||||||
#ifndef _GNU_SOURCE
|
#ifndef _GNU_SOURCE
|
||||||
|
@ -282,7 +282,7 @@ getString() {
|
||||||
Fluxbox *Fluxbox::singleton=0;
|
Fluxbox *Fluxbox::singleton=0;
|
||||||
|
|
||||||
//------------ instance ---------------------
|
//------------ instance ---------------------
|
||||||
//returns singleton object of blackbox class
|
//returns singleton object of Fluxbox class
|
||||||
//since we only need to create one instance of Fluxbox
|
//since we only need to create one instance of Fluxbox
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
Fluxbox *Fluxbox::instance(int m_argc, char **m_argv, char *dpy_name, char *rc) {
|
Fluxbox *Fluxbox::instance(int m_argc, char **m_argv, char *dpy_name, char *rc) {
|
||||||
|
@ -1267,6 +1267,47 @@ void Fluxbox::handleKeyEvent(XKeyEvent &ke) {
|
||||||
#endif // !__EMX__
|
#endif // !__EMX__
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Keys::ROOTMENU: //show root menu
|
||||||
|
{
|
||||||
|
LinkedListIterator<BScreen> it(screenList);
|
||||||
|
|
||||||
|
for (; it.current(); it++) {
|
||||||
|
|
||||||
|
BScreen *screen = it.current();
|
||||||
|
if (ke.window != screen->getRootWindow())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
//calculate placement of workspace menu
|
||||||
|
//and show/hide it
|
||||||
|
int mx = ke.x_root -
|
||||||
|
(screen->getRootmenu()->width() / 2);
|
||||||
|
int my = ke.y_root -
|
||||||
|
(screen->getRootmenu()->titleHeight() / 2);
|
||||||
|
|
||||||
|
if (mx < 0) mx = 0;
|
||||||
|
if (my < 0) my = 0;
|
||||||
|
|
||||||
|
if (mx + screen->getRootmenu()->width() > screen->getWidth()) {
|
||||||
|
mx = screen->getWidth() -
|
||||||
|
screen->getRootmenu()->width() -
|
||||||
|
screen->getBorderWidth();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (my + screen->getRootmenu()->height() >
|
||||||
|
screen->getHeight()) {
|
||||||
|
my = screen->getHeight() -
|
||||||
|
screen->getRootmenu()->height() -
|
||||||
|
screen->getBorderWidth();
|
||||||
|
}
|
||||||
|
screen->getRootmenu()->move(mx, my);
|
||||||
|
|
||||||
|
if (! screen->getRootmenu()->isVisible()) {
|
||||||
|
checkMenu();
|
||||||
|
screen->getRootmenu()->show();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: //try to see if its a window action
|
default: //try to see if its a window action
|
||||||
|
|
Loading…
Reference in a new issue