Home » U++ Library support » Menus&Toolbars » [not a bug] Menu isn`t drawn. NOGTK. FreeBSD/Fluxbox
[not a bug] Menu isn`t drawn. NOGTK. FreeBSD/Fluxbox [message #17748] |
Wed, 27 August 2008 23:07  |
Mindtraveller
Messages: 917 Registered: August 2007 Location: Russia, Moscow rgn.
|
Experienced Contributor |

|
|
Configuration:
FreeBSD 6.2 RELEASE
Fluxbox (compiled from ports)
TheIDE compiled from one of the latest SVN versions with NOGTK flag.
Everything works fine except menus are not drawn. The menu header text is drawn, but the menu itself is completely invisible. In spite of being completely invisible, menus are responding to shortcuts and arrow keys along with Enter key. So user is able to choose and select any menu item, but it is not drawn.
[Updated on: Fri, 31 October 2008 01:53] Report message to a moderator
|
|
|
|
|
|
Re: [bug?] Menu isn`t drawn. NOGTK. FreeBSD/Fluxbox [message #18853 is a reply to message #18288] |
Tue, 28 October 2008 17:15   |
Mindtraveller
Messages: 917 Registered: August 2007 Location: Russia, Moscow rgn.
|
Experienced Contributor |

|
|
Finally I debugged deep into CtrlCore and discovered that dropdown popups and menus are drawn but they are drawn BEHIND actual active window.
I tried some dirty hack to test if it can be corrected and it worked. Partially. Dropdown menus work properly, menus are drawn properly too but disappear on mouse movement inside them.
My dirty little test patch:
CtrlCore/X11Wnd.cpp
was:void Ctrl::PopUp(Ctrl *owner, bool savebits, bool activate, bool, bool)
{
LLOG("POPUP: " << UPP::Name(this));
Ctrl *q = owner ? owner->GetTopCtrl() : GetActiveCtrl();
ignoretakefocus = true;
Create(q, true, savebits);
if(activate) {
q->StartPopupGrab();
popupgrab = true;
}
if(top) popup = true;
WndShow(visible);
if(activate && IsEnabled())
SetFocus();
if(top) top->owner = owner;
StateH(OPEN);
}
now:void Ctrl::PopUp(Ctrl *owner, bool savebits, bool activate, bool, bool)
{
LLOG("POPUP: " << UPP::Name(this));
Ctrl *q = owner ? owner->GetTopCtrl() : GetActiveCtrl();
ignoretakefocus = true;
Create(q, true, savebits);
if(activate) {
q->StartPopupGrab();
popupgrab = true;
}
if(top) popup = true;
WndShow(visible);
SetWndFocus();
XRaiseWindow(Xdisplay, top->window);
if(activate && IsEnabled())
SetFocus();
if(top) top->owner = owner;
StateH(OPEN);
}
|
|
|
|
|
Goto Forum:
Current Time: Sat May 10 06:52:22 CEST 2025
Total time taken to generate the page: 0.02864 seconds
|