Home » Community » U++ community news and announcements » SetRect "MegaRect" support...
| SetRect "MegaRect" support... [message #60894] |
Fri, 04 October 2024 15:06  |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
I have recently came upon a problem where Windows11 with multiple monitors is using very big virtual screen area, unfortunately to conserve the space, we support logical coordinates only between -16000 ... 16000. (BTW the problem manifested as misplaced menus, so if you ever seen something like that, this should fix).
One option to fix that would be to use more bits for coordinates, but after spending month to optimise sizeof(Ctrl) down to 104 bytes, I would hate to spoil that to 120... 
So for now, I decided to only support "mega" positions of windows, meaning in SetRect(x, y, cx, cy), x and y can now be integers (and there is somewhat convoluted code to store them into packed attributes if necessary, which means this will not affect normal widgets). Size of window is still clamped to 16000, but that should not be an issue.
If you have a chance to test this, please do!
This is the commit:
https://github.com/ultimatepp/ultimatepp/commit/d29055412b9b a2f5d3a78d4ba3ae3ee7260b2df2
Also, this means there will be rc2 
Mirek
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60933 is a reply to message #60921] |
Fri, 11 October 2024 08:03   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Tue, 08 October 2024 17:10Quote:
* /home/lance/upp/.cache/upp.out/uppsrc/CLANG.Debug.Debug_Full .Gui.Shared/ide 08.10.2024 11:01:52, user: lance
11:01:52:339 INFO LoadLibClang0(): libclang path: "/usr/lib/llvm-18/lib/libclang.so.1"
11:01:52:340 INFO GuiMainFn_(): Version: 17426 (64 bit) (CLANG) (C++20) (SIMD) (Gtk) Compiled: 10/08/2024 11:01:07 /home/lance/upp/.cache/upp.out/uppsrc/CLANG.Debug.Debug_Full .Gui.Shared/ide
ReParse 3.547205 s
ReParse 3.987207 s
No useful information. Maybe wrong log point?
What I did:
run theide (A), open uppsr/ide, F5 to run the compiled theide (B) in debug mode. After certain action, B freeze. A is normal. I am able to access the logfile content through A's 'Debug/View log file' menu. Then after a few window switching (to write this post), I found A also get frozen. When frozen, menu continus to be responsive. it's just the area below menu won't redraw itself.
Hard to say, but I am confident you should be able get something useful logged...
(If nothing helps, try something simple like DLOG("Hi!") at the start of GUI_APP_MAIN
|
|
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60938 is a reply to message #60937] |
Sat, 12 October 2024 14:57   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
extracted from Ctrl class declaration
Ctrl *prev_sibling = nullptr;
Ctrl *next_sibling = nullptr;
Ctrl *children = nullptr;
PackedData attrs;
byte overpaint;
bool unicode:1;
bool fullrefresh:1;
bool transparent:1;
bool visible:1;
bool enabled:1;
bool wantfocus:1;
bool initfocus:1;
bool activepopup:1;
bool editable:1;
bool modify:1;
bool ignoremouse:1;
bool inframe:1;
bool inloop:1;
bool isopen:1;
bool popup:1;
bool popupgrab:1;
byte backpaint:2;//2
bool akv:1;
bool destroying:1;
bool layout_id_literal:1; // info_ptr points to layout char * literal, no heap involved
bool multi_frame:1; // there is more than single frame, they are stored in heap
bool top:1;
bool megarect:1; // support for large virtual screen area - SetRect > 16000
static Ptr<Ctrl> eventCtrl;
Just noticed the megarect bit added.
[Updated on: Sat, 12 October 2024 16:45] Report message to a moderator
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60943 is a reply to message #60938] |
Sun, 13 October 2024 01:17   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
Now it's much more stabler. Or maybe it's bad luck. It takes so long to meet another theide freeze. There had been a few suspension and resuming. The log file is not very helpful, just like before.
Quote:
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
The last few logs after I noticed the freeze.
Then I resize the window, etc, here is the 3 most recent after that. I am not sure if anything new is actually logged, as there is no timestamp. I will add that.
Quote:
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
=================================
GetScreenView() = [2612, 165] - [3823, 1077] : (1211, 912)
GetScreenRect() = [2539, 163] - [3839, 1079] : (1300, 916)
GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
|
|
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60955 is a reply to message #60944] |
Mon, 14 October 2024 11:35   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Sun, 13 October 2024 01:51Hi Mirek,
After review subsequent logging, I believe after freeze, the CodeEditor::Paint is never called. All log entries were for when theide was maximized. After freeze, I actually unmaximized the window did a few move around and resizing. These were not logged. So Not calling CodeEditor::Paint after theide has been trapped into certain state was the reason for the demonstrated behavior.
OK, based on this information, I tried to prepare a branch with some more logs that will hopefully get us more info...
It is in the branch "logs"
https://github.com/ultimatepp/ultimatepp/tree/logs
Please get it to the freezed state if possible, then press some keys that should invoke repaints (e.g. PageUp / PageDown) so that I can see the reaction to these keys.
BTW, what happens if freezed and you press Ctrl+O? Can you close the window? (without forcing it)
(If not then it is actual freeze, not painting problem)
Does it freeze with assist off? (not using libclang..)
Mirek
[Updated on: Mon, 14 October 2024 11:36] Report message to a moderator
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60956 is a reply to message #60955] |
Mon, 14 October 2024 13:28   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
mirek wrote on Mon, 14 October 2024 05:35
OK, based on this information, I tried to prepare a branch with some more logs that will hopefully get us more info...
It is in the branch "logs"
https://github.com/ultimatepp/ultimatepp/tree/logs
Please get it to the freezed state if possible, then press some keys that should invoke repaints (e.g. PageUp / PageDown) so that I can see the reaction to these keys.
Will test.
Quote:
BTW, what happens if freezed and you press Ctrl+O? Can you close the window? (without forcing it)
(If not then it is actual freeze, not painting problem)
Does it freeze with assist off? (not using libclang..)
Mirek
It's a paint issue. The menu can be used and responsive. If a dialog need to be invoked, it behaves normally. Closing, minimixing, resizing etc all works fine except client area is not painted.
I am afraid it's unlikely a problem of libclang. My application is demonstrating the same behavior.
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60957 is a reply to message #60956] |
Mon, 14 October 2024 13:46   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Mon, 14 October 2024 13:28mirek wrote on Mon, 14 October 2024 05:35
OK, based on this information, I tried to prepare a branch with some more logs that will hopefully get us more info...
It is in the branch "logs"
https://github.com/ultimatepp/ultimatepp/tree/logs
Please get it to the freezed state if possible, then press some keys that should invoke repaints (e.g. PageUp / PageDown) so that I can see the reaction to these keys.
Will test.
Quote:
BTW, what happens if freezed and you press Ctrl+O? Can you close the window? (without forcing it)
(If not then it is actual freeze, not painting problem)
Does it freeze with assist off? (not using libclang..)
Mirek
It's a paint issue. The menu can be used and responsive. If a dialog need to be invoked, it behaves normally. Closing, minimixing, resizing etc all works fine except client area is not painted.
I am afraid it's unlikely a problem of libclang. My application is demonstrating the same behavior.
Thanks. Perfect, that narrows it down.
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60958 is a reply to message #60957] |
Mon, 14 October 2024 13:54   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
I added a flag flagDEBUGCODE, manage to get it compile in release mode.
Now log file look like
Quote:
========= GtkDraw Ide : 0x7ffd65b32610
p->GetWndScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetWndScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetScreenView() = [1920, 129] - [3840, 1080] : (1920, 951)
p->GetScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
p->GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
p->GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
p->GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
========= GtkDraw Ide : 0x7ffd65b32610
p->GetWndScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetWndScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetScreenView() = [1920, 129] - [3840, 1080] : (1920, 951)
p->GetScreenRect() = [1920, 69] - [3840, 1080] : (1920, 1011)
p->GetVirtualScreenArea() = [0, 0] - [3840, 1080] : (3840, 1080)
p->GetVirtualWorkArea() = [0, 0] - [3840, 1080] : (3840, 1080)
p->GetPrimaryWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
p->GetWorkArea() = [1920, 32] - [3840, 1080] : (1920, 1048)
work_area = [[1920, 32] - [3840, 1080] : (1920, 1048), [0, 0] - [1920, 1080] : (1920, 1080)]
--------
I should be on the right track. I will update when a freeze occurs. Thanks!
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60960 is a reply to message #60958] |
Mon, 14 October 2024 16:12   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
Caught one. Tail of the log file:
Invalidate [0, 0] - [1280, 698] : (1280, 698)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [323, 698] : (323, 641)
INVALIDATE [0, 57] - [323, 698] : (323, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [0, 57] - [1280, 698] : (1280, 641)
INVALIDATE [0, 57] - [1280, 698] : (1280, 641)
INVALIDATE [0, 0] - [1280, 698] : (1280, 698)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 0] - [1920, 1043] : (1920, 1043)
Invalidate [0, 0] - [1920, 1043] : (1920, 1043)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 0] - [1920, 1043] : (1920, 1043)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 0] - [1280, 698] : (1280, 698)
Invalidate [0, 0] - [1280, 698] : (1280, 698)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 0] - [1280, 698] : (1280, 698)
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60964 is a reply to message #60960] |
Mon, 14 October 2024 16:34   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Mon, 14 October 2024 16:12Caught one. Tail of the log file:
Invalidate [0, 0] - [1280, 698] : (1280, 698)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [323, 698] : (323, 641)
INVALIDATE [0, 57] - [323, 698] : (323, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [0, 57] - [328, 698] : (328, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [328, 57] - [1280, 698] : (952, 641)
INVALIDATE [0, 57] - [1280, 698] : (1280, 641)
INVALIDATE [0, 57] - [1280, 698] : (1280, 641)
INVALIDATE [0, 0] - [1280, 698] : (1280, 698)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 0] - [1920, 1043] : (1920, 1043)
Invalidate [0, 0] - [1920, 1043] : (1920, 1043)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 0] - [1920, 1043] : (1920, 1043)
WndInvalidateRect [0, 0] - [1920, 29] : (1920, 29)
Invalidate [0, 0] - [1920, 29] : (1920, 29)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 0] - [1280, 29] : (1280, 29)
Invalidate [0, 0] - [1280, 29] : (1280, 29)
WndInvalidateRect [0, 31] - [1920, 57] : (1920, 26)
Invalidate [0, 31] - [1920, 57] : (1920, 26)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 31] - [1280, 57] : (1280, 26)
Invalidate [0, 31] - [1280, 57] : (1280, 26)
WndInvalidateRect [0, 0] - [1280, 698] : (1280, 698)
Invalidate [0, 0] - [1280, 698] : (1280, 698)
INVALIDATE [0, 0] - [1920, 29] : (1920, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 0] - [1280, 29] : (1280, 29)
INVALIDATE [0, 31] - [1920, 57] : (1920, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 31] - [1280, 57] : (1280, 26)
INVALIDATE [0, 0] - [1280, 698] : (1280, 698)
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 2162518 (0x0020ff56, Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
DispatchKey 69271382 (0x0420ff56, UP Page Down), count:1 focusCtrl:AssistEditor : 0x7fff734cb688 (parent Upp::ParentCtrl) focusCtrlWnd:Ide : 0x7fff734ca4e0
Interesting and unexpected - looks like it never gets into WndInvalidateRect after the "event".
Added more logs
https://github.com/ultimatepp/ultimatepp/commit/3823617f7bc9 de5ce5731a219d8ed22af8fd6b8a
before that point, can you pull and try again?
Mirek
|
|
|
|
|
|
|
|
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60977 is a reply to message #60974] |
Wed, 16 October 2024 09:48   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Tue, 15 October 2024 23:56mirek wrote on Tue, 15 October 2024 03:02Lance wrote on Mon, 14 October 2024 17:37ok. please see attached.
Thanks it, hopefully getting close... More logs added, so please repeat after pulling "logs" branch...
Also, I have potential fix included, but I really would like to get freezed log first to confirm my theory...
After that, you can try to activate the fix, uncomment / #if 1
CtrlCore/CtrlPos.cpp:157
CtrlCore/CtrlDraw.cpp:52
Mirek
I have actived the tentative fix. I am about to start testing the fix.
Oops, no, I would really like to see the new log before the fix! (Just to confirm I am fixing the right problem this time).
|
|
|
|
| Re: SetRect "MegaRect" support... [message #60979 is a reply to message #60977] |
Wed, 16 October 2024 15:17   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
mirek wrote on Wed, 16 October 2024 03:48Lance wrote on Tue, 15 October 2024 23:56mirek wrote on Tue, 15 October 2024 03:02Lance wrote on Mon, 14 October 2024 17:37ok. please see attached.
Thanks it, hopefully getting close... More logs added, so please repeat after pulling "logs" branch...
Also, I have potential fix included, but I really would like to get freezed log first to confirm my theory...
After that, you can try to activate the fix, uncomment / #if 1
CtrlCore/CtrlPos.cpp:157
CtrlCore/CtrlDraw.cpp:52
Mirek
I have actived the tentative fix. I am about to start testing the fix.
Oops, no, I would really like to see the new log before the fix! (Just to confirm I am fixing the right problem this time).
That's exactly what I did. See the post prior to that for the attached zipped log file. Thanks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: SetRect "MegaRect" support... [message #61046 is a reply to message #61044] |
Mon, 21 October 2024 23:59   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
No. It was fine. But after it froze, I left it unkilled for a while, afraid of another run will erase the log file. OK, here I got a log file from ide.
It has been in good condition after many suspension-resume sessions. Just now I decided to give it some focus. I moved it from one monitor to another, dragged another window from another monitor to the one ide resided, and on top of ide, keeping mouse down and adjusting its position until I saw a color changing in ide underneath the window I was playing with, signalling possibly negotiating drag-n-drop(?). It successfuly brought down ide. It doesn't always. But it seems this set of actions is dangerous to ide. It breaks under other totally unrelated, unrecorded sequence of actions too.
BTW, please feel free to delete used log files from uppweb to free up resouces. Or maybe I shall do that?
[Updated on: Wed, 23 October 2024 20:09] Report message to a moderator
|
|
|
|
| Re: SetRect "MegaRect" support... [message #61047 is a reply to message #61046] |
Tue, 22 October 2024 10:19   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Lance wrote on Mon, 21 October 2024 23:59No. It was fine. But after it froze, I left it unkilled for a while, afraid of another run will erase the log file. OK, here I got a log file from ide.
It has been in good condition after many suspension-resume sessions. Just now I decided to give it some focus. I moved it from one monitor to another, dragged another window from another monitor to the one ide resided, and on top of ide, keeping mouse down and adjusting its position until I saw a color changing in ide underneath the window I was playing with, signalling possibly negotiating drag-n-drop(?). It successfuly brought down ide. It doesn't always. But it seems this set of actions is dangerous to ide. It breaks under other totally unrelated, unrecorded sequence of actions too.
BTW, please feel free to delete used log files from uppweb to free up resouces. Or maybe I shall do that?
By "brought down" do you mean crash or (the usual) repainting stopped?
If the second one, it starts to look like yet another xwayland bug (assuming you run wayland - I think you do). Log clearly shows that I call gdk_window_invalidate_rect with proper parameters (it is the INVALIDATE word in the log), after which gtk is supposed to call me back and do the repaint (GtkDraw in the log). Log shows the repaint properly happens at the beginning, but then stops doing so near the end of log....
Anyway, I have added even more logging, so please one last time pull logs branch and keep testing...
|
|
|
|
| Re: SetRect "MegaRect" support... [message #61050 is a reply to message #61047] |
Tue, 22 October 2024 18:24   |
Lance
Messages: 656 Registered: March 2007
|
Contributor |
|
|
mirek wrote on Tue, 22 October 2024 04:19
By "brought down" do you mean crash or (the usual) repainting stopped?
repainting stopped.
Quote:
If the second one, it starts to look like yet another xwayland bug (assuming you run wayland - I think you do). Log clearly shows that I call gdk_window_invalidate_rect with proper parameters (it is the INVALIDATE word in the log), after which gtk is supposed to call me back and do the repaint (GtkDraw in the log). Log shows the repaint properly happens at the beginning, but then stops doing so near the end of log....
Glad to know the culprit is pinpointed. Guess there is not much we can do on u++ side.
Quote:
Anyway, I have added even more logging, so please one last time pull logs branch and keep testing...
Test going on.
PS[Wed, 23 October 2024 14:11]: whatever you have done last time has made u++ more resistant to freeze problem. I cannot tell it's completely fixed but so far both logs-ide and my app build with logs-branch u++ have been fine while master branch ones having failed multiple times. I will keep watching.
[Fri, 25 October 2024 17:22] so far no problem.
[Updated on: Fri, 25 October 2024 23:23] Report message to a moderator
|
|
|
|
Goto Forum:
Current Time: Wed Jun 17 16:06:00 GMT+2 2026
Total time taken to generate the page: 0.01161 seconds
|