Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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: 14261
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: 14261
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: 14261
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: 14261
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: 14261
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: 14261
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: 14261
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 previous 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

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


Current Time: Thu Jun 12 20:38:02 CEST 2025

Total time taken to generate the page: 0.04559 seconds