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

Home » Community » U++ community news and announcements » SetRect "MegaRect" support...
SetRect "MegaRect" support... [message #60894] Fri, 04 October 2024 15:06 Go to next message
mirek is currently offline  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... Smile

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 Sad

Mirek
Re: SetRect "MegaRect" support... [message #60905 is a reply to message #60894] Mon, 07 October 2024 02:00 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Great! I will update theide and do a test. Thanks Mirek!
Re: SetRect "MegaRect" support... [message #60906 is a reply to message #60905] Mon, 07 October 2024 02:36 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Freezed in 10 minutes.

index.php?t=getfile&id=6973&private=0

I can still bring the "Help/About..." dialog to display the version number. But notice the right & bottom part of theide window is not drawn after resizing.

[Updated on: Wed, 23 October 2024 20:06]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #60911 is a reply to message #60906] Mon, 07 October 2024 12:53 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 07 October 2024 02:36
Freezed in 10 minutes.

index.php?t=getfile&id=6973&private=0

I can still bring the "Help/About..." dialog to display the version number. But notice the right & bottom part of theide window is not drawn after resizing.


Was this connected to adding / removing external display again?

Can you put in some logs? At the start of CodeEditor::Paint:

		DLOG("=================================");
		DDUMP(GetScreenView());
		DDUMP(GetScreenRect());
		DDUMP(GetVirtualScreenArea());
		DDUMP(GetVirtualWorkArea());
		DDUMP(GetPrimaryWorkArea());
		DDUMP(GetWorkArea());
		Array<Rect> work_area;
		GetWorkArea(work_area);
		DDUMP(work_area);
		DLOG("--------");
Re: SetRect "MegaRect" support... [message #60912 is a reply to message #60911] Mon, 07 October 2024 13:27 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Mon, 07 October 2024 06:53


Was this connected to adding / removing external display again?

Can you put in some logs? At the start of CodeEditor::Paint:

		DLOG("=================================");
		DDUMP(GetScreenView());
		DDUMP(GetScreenRect());
		DDUMP(GetVirtualScreenArea());
		DDUMP(GetVirtualWorkArea());
		DDUMP(GetPrimaryWorkArea());
		DDUMP(GetWorkArea());
		Array<Rect> work_area;
		GetWorkArea(work_area);
		DDUMP(work_area);
		DLOG("--------");


It's not connected to Add/Removing secondary monitor. Some bugs in Ubuntu (or maybe the kernel) results in Gnome to log out current user and restart a new session. I usually put the machine to suspension before removing secondary monitor.

I will post log file when one is available.

Thanks!
Re: SetRect "MegaRect" support... [message #60921 is a reply to message #60912] Tue, 08 October 2024 17:10 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Quote:

* /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.
Re: SetRect "MegaRect" support... [message #60933 is a reply to message #60921] Fri, 11 October 2024 08:03 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Tue, 08 October 2024 17:10
Quote:

* /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 Smile
Re: SetRect "MegaRect" support... [message #60937 is a reply to message #60933] Sat, 12 October 2024 14:31 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
if I F5 to run theide from within original ide, and open another project to compile, etc., theide crashes because of segmentation fault, with the following call stack.

index.php?t=getfile&id=6974&private=0

[Updated on: Wed, 23 October 2024 20:07]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #60938 is a reply to message #60937] Sat, 12 October 2024 14:57 Go to previous messageGo to next message
Lance is currently offline  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 Go to previous messageGo to next message
Lance is currently offline  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 #60944 is a reply to message #60943] Sun, 13 October 2024 01:51 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Hi 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.
Re: SetRect "MegaRect" support... [message #60955 is a reply to message #60944] Mon, 14 October 2024 11:35 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Sun, 13 October 2024 01:51
Hi 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 Go to previous messageGo to next message
Lance is currently offline  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 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 14 October 2024 13:28
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.


Thanks. Perfect, that narrows it down.
Re: SetRect "MegaRect" support... [message #60958 is a reply to message #60957] Mon, 14 October 2024 13:54 Go to previous messageGo to next message
Lance is currently offline  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 Go to previous messageGo to next message
Lance is currently offline  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 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 14 October 2024 16:12
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


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 #60968 is a reply to message #60964] Mon, 14 October 2024 17:37 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
ok. please see attached.

[Updated on: Wed, 23 October 2024 20:07]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #60970 is a reply to message #60968] Tue, 15 October 2024 09:02 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 14 October 2024 17:37
ok. 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
icon14.gif  Re: SetRect "MegaRect" support... [message #60973 is a reply to message #60970] Tue, 15 October 2024 15:21 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Caught one. Please see attached.

[Updated on: Wed, 23 October 2024 20:08]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #60974 is a reply to message #60970] Tue, 15 October 2024 23:56 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Tue, 15 October 2024 03:02
Lance wrote on Mon, 14 October 2024 17:37
ok. 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.
Re: SetRect "MegaRect" support... [message #60977 is a reply to message #60974] Wed, 16 October 2024 09:48 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Tue, 15 October 2024 23:56
mirek wrote on Tue, 15 October 2024 03:02
Lance wrote on Mon, 14 October 2024 17:37
ok. 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 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Wed, 16 October 2024 03:48
Lance wrote on Tue, 15 October 2024 23:56
mirek wrote on Tue, 15 October 2024 03:02
Lance wrote on Mon, 14 October 2024 17:37
ok. 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).


Razz That's exactly what I did. See the post prior to that for the attached zipped log file. Thanks.
Re: SetRect "MegaRect" support... [message #60981 is a reply to message #60973] Wed, 16 October 2024 15:26 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Tue, 15 October 2024 15:21
Caught one. Please see attached.


Cool. It is consistent with the attempt at fixing it...
icon14.gif  Re: SetRect "MegaRect" support... [message #60983 is a reply to message #60981] Wed, 16 October 2024 15:36 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Wed, 16 October 2024 09:26
Lance wrote on Tue, 15 October 2024 15:21
Caught one. Please see attached.


Cool. It is consistent with the attempt at fixing it...


Great! Please apply it in the main branch. I will test in both theide and my application continuously for 2 weeks to verify it.
Re: SetRect "MegaRect" support... [message #60987 is a reply to message #60983] Thu, 17 October 2024 01:15 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
No rush. I likely had another freeze but I am not 100% sure. Would it be possible for you to log a indicator version number etc in the log file?

Just in case, please see attached for the log file.

[Updated on: Wed, 23 October 2024 20:08]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #60988 is a reply to message #60987] Thu, 17 October 2024 10:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Thu, 17 October 2024 01:15
No rush. I likely had another freeze but I am not 100% sure. Would it be possible for you to log a indicator version number etc in the log file?


Pushed to logs, I have also "fortified" the fix a bit... It is now active in the branch.

Mirek
Re: SetRect "MegaRect" support... [message #61006 is a reply to message #60988] Thu, 17 October 2024 21:02 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
Caught another one. Please see attached.

[Updated on: Wed, 23 October 2024 20:08]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #61011 is a reply to message #61006] Sat, 19 October 2024 09:41 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Thu, 17 October 2024 21:02
Caught another one. Please see attached.


Uh oh... More logs added to "logs". Please keep testing.
Re: SetRect "MegaRect" support... [message #61012 is a reply to message #61011] Sat, 19 October 2024 09:48 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Any context BTW? I mean any action performed before it got stuck? Maximise/minimise/moving window or something like that?
Re: SetRect "MegaRect" support... [message #61017 is a reply to message #61012] Sat, 19 October 2024 13:50 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Sat, 19 October 2024 03:48
Any context BTW? I mean any action performed before it got stuck? Maximise/minimise/moving window or something like that?


That's the toughest part. No easy pattern can be spotted that leads to a freeze. Sometimes it goes like many hours and mutiple suspension & resume without a problem. Sometimes it happens quite often like a few times in half an hour's frame.

Moving around, minimizing & maximizing definitely have no problems at all. If I must point something out, it possibly has a positive correlation with moving windows between minitors, switching to other window and leave theide in the background. But really, I am not sure.
Re: SetRect "MegaRect" support... [message #61018 is a reply to message #61011] Sat, 19 October 2024 13:52 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Sat, 19 October 2024 03:41
Lance wrote on Thu, 17 October 2024 21:02
Caught another one. Please see attached.


Uh oh... More logs added to "logs". Please keep testing.


Takes many hours, and eventually I have this.

[Updated on: Wed, 23 October 2024 20:08]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #61031 is a reply to message #61018] Mon, 21 October 2024 02:13 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
My local copy of uppsrc got screwed up. I have recreated it, but that may mean the previous freeze reports might be faulty (and log file invalid).

I have recompiled logs/ide, and started testing. Sorry for possibly unnecessary frustrations it might have caused.
Re: SetRect "MegaRect" support... [message #61036 is a reply to message #61031] Mon, 21 October 2024 13:06 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
I can pretty much be sure the bug is still around. theide hasn't failed yet, but my application compiled with the logs branch u++ libary failed just now.
Re: SetRect "MegaRect" support... [message #61037 is a reply to message #61036] Mon, 21 October 2024 13:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 21 October 2024 13:06
I can pretty much be sure the bug is still around. theide hasn't failed yet, but my application compiled with the logs branch u++ libary failed just now.


And what about logs? Smile

Mirek
Re: SetRect "MegaRect" support... [message #61040 is a reply to message #61037] Mon, 21 October 2024 18:00 Go to previous messageGo to next message
Lance is currently offline  Lance
Messages: 656
Registered: March 2007
Contributor
mirek wrote on Mon, 21 October 2024 07:17

And what about logs? Smile

Mirek


Oh, I though the one generated while running theide is more desirable. Please see attached.

[Updated on: Wed, 23 October 2024 20:08]

Report message to a moderator

Re: SetRect "MegaRect" support... [message #61044 is a reply to message #61040] Mon, 21 October 2024 23:12 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 21 October 2024 18:00
mirek wrote on Mon, 21 October 2024 07:17

And what about logs? Smile

Mirek


Oh, I though the one generated while running theide is more desirable. Please see attached.


From the log it seems like it was "frozen" since the start. Is that correct?
Re: SetRect "MegaRect" support... [message #61046 is a reply to message #61044] Mon, 21 October 2024 23:59 Go to previous messageGo to next message
Lance is currently offline  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 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Lance wrote on Mon, 21 October 2024 23:59
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?


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 Go to previous messageGo to previous message
Lance is currently offline  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

Previous Topic: 2024rc1
Next Topic: DarkTheme function parameters changed
Goto Forum:
  


Current Time: Thu Jun 18 01:56:46 GMT+2 2026

Total time taken to generate the page: 0.01279 seconds