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 » U++ Library support » U++ Library : Other (not classified elsewhere) » [FIXED] Full screen bug on additional screens. (GNU/Linux)
[FIXED] Full screen bug on additional screens. (GNU/Linux) [message #37357] Wed, 26 September 2012 14:21 Go to next message
Klugier is currently offline  Klugier
Messages: 1075
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

I found a bug in all u++ applications, I have compiled on my GNU/Linux (Kubuntu 12.04 amd64). The proble is with all "fullscreen" aplication. When I moved my window to the additional display and I would like to make this window stretched to all screen surface. I can not do this. The window is marked as a resize to maksimum but it not fit to screen surface.

I enclose picture with this error.

Sincerely,


U++ - one framework to rule them all.

[Updated on: Fri, 28 June 2013 22:05]

Report message to a moderator

Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37410 is a reply to message #37357] Mon, 01 October 2012 19:30 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
klugier wrote on Wed, 26 September 2012 08:21

Hello,

I found a bug in all u++ applications, I have compiled on my GNU/Linux (Kubuntu 12.04 amd64). The proble is with all "fullscreen" aplication. When I moved my window to the additional display and I would like to make this window stretched to all screen surface. I can not do this. The window is marked as a resize to maksimum but it not fit to screen surface.

I enclose picture with this error.

Sincerely,



Unable to reproduce. I have noticed some minor problems with multimonitor setup in Linux (namely initial theide splash-screen is centered across both windows), but maximize seems to work OK.

Tested with Linux Mint Mate 12 and Intel graphics.
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37476 is a reply to message #37410] Wed, 10 October 2012 21:20 Go to previous messageGo to next message
kohait00 is currently offline  kohait00
Messages: 939
Registered: July 2009
Location: Germany
Experienced Contributor
i am currently setting up a linux mint box with upp ofcorse Smile
and noticed some problems here too, with single monitor though..
theide starts up with half of the size, but mouse thinks everything is allright, and receives commands at expected points as if maximized.

closing it and restarting gives a new sized theide, but still not the one needed. very seldom it sturts right.

couldn't figure out why..

so i'm currently stuck with win7, though i'd like to code in linux
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37478 is a reply to message #37476] Wed, 10 October 2012 21:28 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
kohait00 wrote on Wed, 10 October 2012 15:20

i am currently setting up a linux mint box with upp ofcorse Smile
and noticed some problems here too, with single monitor though..
theide starts up with half of the size, but mouse thinks everything is allright, and receives commands at expected points as if maximized.



Cinnamon?

I have experienced this bug, and unfortunately I am 98% confident it is Cinnamon bug. I do not even know how to provide a good workaround. I have filed it in Cinnamon bug tracker.

http://www.ultimatepp.org/forum/index.php?t=msg&goto=371 27&&srch=cinnamon#msg_37127

One workaround that works is to add Sleep(1000) before maximize so that animation runs it course before maximize is issued, but that is just too plain ugly. Other than that, cinnamon WM gives no clue about when calling Maximize is safe Sad (of course, it should be safe at all times anyway..).

Now running MATE and been happier than ever Wink

Mirek
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37479 is a reply to message #37478] Wed, 10 October 2012 21:30 Go to previous messageGo to next message
kohait00 is currently offline  kohait00
Messages: 939
Registered: July 2009
Location: Germany
Experienced Contributor
yea, it's cinnamon, damn it!! Mad

gonna switch to MATE for upp sake...

[Updated on: Wed, 10 October 2012 21:31]

Report message to a moderator

Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37480 is a reply to message #37479] Wed, 10 October 2012 21:35 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
For reference...

https://github.com/linuxmint/Cinnamon/issues/1068
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37632 is a reply to message #37357] Mon, 29 October 2012 21:19 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1075
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

I have found solution for this bug. I have modified following file TopWinX11.cpp (CtrlCore):

void TopWindow::SyncSizeHints()
{
	GuiLock __; 
	Size min = GetMinSize();
	Size max = GetMaxSize();
	if(!sizeable)
		min = max = GetRect().Size();
	Window w = GetWindow();
	if(w && (min != xminsize || max != xmaxsize)) {
		xminsize = min;
		xmaxsize = max;
		size_hints->min_width = min.cx;
		size_hints->min_height = min.cy;
		size_hints->max_width = max.cx;
		size_hints->max_height = max.cy;
		size_hints->flags = PMinSize; // <- THIS LINE 
		XSetWMNormalHints(Xdisplay, w, size_hints);
	}
}


Instead of:

void TopWindow::SyncSizeHints()
{
        GuiLock __; 
	Size min = GetMinSize();
	Size max = GetMaxSize();
	if(!sizeable)
		min = max = GetRect().Size();
	Window w = GetWindow();
	if(w && (min != xminsize || max != xmaxsize)) {
		xminsize = min;
		xmaxsize = max;
		size_hints->min_width = min.cx;
		size_hints->min_height = min.cy;
		size_hints->max_width = max.cx;
		size_hints->max_height = max.cy;
		size_hints->flags = PMinSize|PMaxSize;
		XSetWMNormalHints(Xdisplay, w, size_hints);
	}
}


Now it works great.

Sincerely,
Klugier


U++ - one framework to rule them all.

[Updated on: Mon, 29 October 2012 21:22]

Report message to a moderator

Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37633 is a reply to message #37632] Mon, 29 October 2012 21:35 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Any rational for this change? I am afraid that this would invalidate GetMaxSize purpose...

Mirek
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37634 is a reply to message #37357] Mon, 29 October 2012 22:01 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1075
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello,

I am sorry. It is my fault. But in meantime, I have found another better solution (I don't know it's good, but it works):

CtrlPos.cpp:
Size Ctrl::GetMaxSize() const
{	
	return GetVirtualScreenArea().Size();
}


Instead of:
Size Ctrl::GetMaxSize() const
{	
	return GetVirtualWorkArea().Size();
}


Sincerely,
Klugier


U++ - one framework to rule them all.

[Updated on: Mon, 29 October 2012 22:11]

Report message to a moderator

Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37648 is a reply to message #37634] Tue, 30 October 2012 16:27 Go to previous messageGo to next message
nlneilson is currently offline  nlneilson
Messages: 644
Registered: January 2010
Location: U.S. California. Mojave &...
Contributor
I don't know if this directly related as this is for just a single screen.

nlneilson wrote on Sun, 08 July 2012 11:45

When TheIDE is opened or started the file and even the place in that file is saved for the next time it is opened.

Is there a way to have TheIDE open where it is not in the full screen mode?


That was back in July and it is still the same after many updates of u++
5494 always opens the IDE in full screen
The box that opens to pick the package can be moved and that is saved.

[Updated on: Tue, 30 October 2012 16:51]

Report message to a moderator

Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37651 is a reply to message #37648] Tue, 30 October 2012 18:08 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
nlneilson wrote on Tue, 30 October 2012 11:27

I don't know if this directly related as this is for just a single screen.

nlneilson wrote on Sun, 08 July 2012 11:45

When TheIDE is opened or started the file and even the place in that file is saved for the next time it is opened.

Is there a way to have TheIDE open where it is not in the full screen mode?


That was back in July and it is still the same after many updates of u++
5494 always opens the IDE in full screen
The box that opens to pick the package can be moved and that is saved.



This is by design... (but I guess we can argued otherwise Smile

Mirek
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37652 is a reply to message #37634] Tue, 30 October 2012 18:09 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
klugier wrote on Mon, 29 October 2012 17:01

Hello,

I am sorry. It is my fault. But in meantime, I have found another better solution (I don't know it's good, but it works):

CtrlPos.cpp:
Size Ctrl::GetMaxSize() const
{	
	return GetVirtualScreenArea().Size();
}


Instead of:
Size Ctrl::GetMaxSize() const
{	
	return GetVirtualWorkArea().Size();
}


Sincerely,
Klugier


OK, this sort of makes sense, but it looks like the real trouble is that we still do not deal with multiple screens correctly. We desperately need correct void Ctrl::GetWorkArea(Array<Rect>& out)
implementation for Linux...

Mirek
Re: [Bug report] Full screen bug on additional screens. (GNU/Linux) [message #37653 is a reply to message #37652] Tue, 30 October 2012 18:38 Go to previous message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Patch accepted. Thank you for investigating and fixing this...

Mirek
Previous Topic: Missing Docs for some virtual Ctrl:: functions
Next Topic: [Drag & Drop] How to reject Clip on base of content of data?
Goto Forum:
  


Current Time: Thu Mar 28 19:51:53 CET 2024

Total time taken to generate the page: 0.01697 seconds