Home » U++ Library support » U++ Library : Other (not classified elsewhere) » [SOLVED] Maybe a bug... ?
[SOLVED] Maybe a bug... ? [message #14379] |
Sun, 24 February 2008 17:25 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
Running a program, today I stubled on a strange behaviour.
That happens resizing main window... here the screenshot.
When I resize, the blue transparent background appears and freezes suddenly; I can move the window but the blue background stays there.... if I minimize or maximize app, it disappears.
When the bluie background is there I can't resize window anymore.
Ciao
Max
[Updated on: Mon, 25 February 2008 12:20] Report message to a moderator
|
|
|
Re: Maybe a bug... ? [message #14382 is a reply to message #14379] |
Sun, 24 February 2008 18:07 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
Some more info.... The blue transparent background is from compiz; it appears an every app resizing the window.
On my app, it freezes if I click on the resize corner NOT EXACTLY on bottom right corner.
I noticed that with normal linux apps (nautilus, for example) the resize corner is 'frame wide', so it extends from the bottom right corner by the frame thickness.
On my upp app, it seems to extend too, so the cursor changes to resize cursor, but if I don't click exactly on bottom-right corner it doesn't resize. Without compiz, it does no harm, I must just click more precisely; with compiz enabled the 'blue rectangle problem' appears.
Ciao
Max
[Updated on: Sun, 24 February 2008 18:09] Report message to a moderator
|
|
|
Re: Maybe a bug... ? [message #14385 is a reply to message #14382] |
Sun, 24 February 2008 20:28 |
|
mirek
Messages: 13975 Registered: November 2005
|
Ultimate Member |
|
|
mdelfede wrote on Sun, 24 February 2008 12:07 | Some more info.... The blue transparent background is from compiz; it appears an every app resizing the window.
On my app, it freezes if I click on the resize corner NOT EXACTLY on bottom right corner.
I noticed that with normal linux apps (nautilus, for example) the resize corner is 'frame wide', so it extends from the bottom right corner by the frame thickness.
On my upp app, it seems to extend too, so the cursor changes to resize cursor, but if I don't click exactly on bottom-right corner it doesn't resize. Without compiz, it does no harm, I must just click more precisely; with compiz enabled the 'blue rectangle problem' appears.
Ciao
Max
|
Excellent, we are getting somewhere...
IMO, the problem is in SizeGrip class, CtrlLib/ScrollBar.cpp 570.
http://standards.freedesktop.org/wm-spec/1.4/ar01s04.html
Looks like we are short of couple of parameters for _NET_WM_MOVERESIZE.
|
|
|
Re: [SOLVED] Maybe a bug... ? [message #14396 is a reply to message #14379] |
Mon, 25 February 2008 12:29 |
mdelfede
Messages: 1307 Registered: September 2007
|
Ultimate Contributor |
|
|
It was due to a missing
XUngrabPointer( Xdisplay, CurrentTime );
in that function :
void SizeGrip::LeftDown(Point p, dword flags)
{
TopWindow *q = dynamic_cast<TopWindow *>(GetTopCtrl());
if(!q || q->IsMaximized() || !q->IsSizeable()) return;
#ifdef PLATFORM_WIN32
HWND hwnd = q->GetHWND();
p = GetMousePos() - q->GetRect().TopLeft();
if(hwnd) {
::SendMessage(hwnd, WM_SYSCOMMAND, 0xf008, MAKELONG(p.x, p.y));
::SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELONG(p.x, p.y));
}
#endif
#ifdef PLATFORM_X11
if(_NET_Supported().Find(XAtom("_NET_WM_MOVERESIZE")) >= 0) {
===>HERE XUngrabPointer( Xdisplay, CurrentTime );
XClientMessageEvent m;
Adding it solves not only the 'blue box' but also the grip resizing .
Ciao
Max
|
|
|
|
Goto Forum:
Current Time: Sat May 04 15:43:14 CEST 2024
Total time taken to generate the page: 0.02618 seconds
|