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: Tue Nov 04 02:57:23 CET 2025 
 Total time taken to generate the page: 0.06483 seconds 
 |