U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » U++ Library : Other (not classified elsewhere) » Display problem with Splitter, GLCtrl and MenuBar
Re: Display problem with Splitter, GLCtrl and MenuBar [message #15732 is a reply to message #15711] Tue, 06 May 2008 20:14 Go to previous messageGo to previous message
mdelfede is currently offline  mdelfede
Messages: 1310
Registered: September 2007
Ultimate Contributor
Fixed, will post updated code in svn.

Quick fixes : In Core/X11DHCtrl.cpp, from line 341 :

			case POSITION   : // = 100,
			case LAYOUTPOS  : // = 101,
				r = GetRectInParentWindow();
				XGetGeometry(Xdisplay, top->window, &dummy, &x, &y, &width, &height, &border, &depth);
				if( (x != r.left || y != r.top) && ((int)width == r.Width() && (int)height == r.Height()))
					XMoveWindow(Xdisplay, top->window, r.left, r.top);
				else if( (x == r.left || y == r.top) && ((int)width != r.Width() || (int)height != r.Height()))
					XResizeWindow(Xdisplay, top->window, r.Width(), r.Height());
				else if( x != r.left || y != r.top || (int)width != r.Width() || (int)height != r.Height())
					XMoveResizeWindow(Xdisplay, top->window, r.left, r.top, r.Width(), r.Height());

				break;

			default:
				break;

		} // switch(reason)
	}

} // END DHCtrl::State()


and, in X11Wnd, from line 152 :

// Gets the rect inside the parent window
Rect Ctrl::GetRectInParentWindow(void) const
{
	Rect r = GetRect();
	Ctrl *q = parent;
	while(q)
  	{
		if(q->top)
			break;
		r += q->GetRect().TopLeft();
		q = q->parent;
	}
	if(q)
		r += q->GetScreenView().TopLeft() - q->GetScreenRect().TopLeft() ;
	return r;

}
// 01/12/2007 - END


Ciao

Max
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: ImageCtrl issue
Next Topic: Uninitialized class members.
Goto Forum:
  


Current Time: Thu Jun 11 19:50:26 GMT+2 2026

Total time taken to generate the page: 0.00700 seconds