|
|
Home » Community » U++ community news and announcements » 2020.1 alpha
2020.1 alpha [message #53123] |
Wed, 04 March 2020 12:23  |
 |
mirek
Messages: 14257 Registered: November 2005
|
Ultimate Member |
|
|
I have mostly run to the end of my ToDo list for 2020.1, so I call current nightly build 2020.1 alpha. Hopefully, we will have final release in April.
Here are the new features for the 2020.1 (please tell me if I have missed something; I expect Koldo to add some points about ScatterCtrl):
Release highlights
* gtk3 replaces gtk2 as default linux backend
* Visual look&feel refactored in Linux and MacOS, improved dark theme support
* In Win32, PDB debugger now displays various U++ and standard library containers nicely
* Win32 release now ships with CLANG with llvm-mingw toolchain
Core
* SshExec improvements
* ConditionVariable and Semapthore now have Wait variant with timeout
* IsDoubleWidth function to detect double-width UNICODE glyphs
* MacOS is now using fast U++ heap when possible (not for new/delete)
CtrlCore
* Ctrl::GetAscendant utility method to get parent based on its type
* Dark mode is now enabled by default, CtrlLib: classic skin improvements
* MacOS multimonitor support and other fixes
CtrlLib
* Modernized widgets look in layout designer
* Added some less often used widgets like ColorPusher, TreeCtrl or ColumnList that were not previously directly supported in layout designer
* FileSel support of .lnk files in Win32
* Host native file selecteor, FileSelector, is now renamed to FileSelNative and is now available in MacOS too (in addition to Win32 and gtk3)
* GLCtrl in OpenGL/X11 refactored
Ide
* umk now implements use target directory flag (thanks Novo)
* Context goto (Alt+J) now able to detect files / links (and open the file / link in browser)
* Gdb frontend now can better handle executables without debug info
* Icon designer now can show synthetised UHD/Dark images
* New Insert file/clipboard as.. function allows insertion of clipboard or files directly to the text in various formats (C string, Base64 encode, raw byte values, compressed byte values using LZ4 or Zlib or LZMA).
* Move/Copy package function
* Find in files now has 3 output panes
Painter
* GetSVGPathBoundingBox function that gets bounding box of SVG path
* Xform2D::Map function creates matrix for affinity triangle->triangle mapping
SQL
* PGSQL got now can escape ? as ?? or use NoQuestionParams method to avoid interpreting ? as parameter holder
* SQL_RENAME .sch 'command' can be used to have different name of column in DB and code.
uppsrc
* In POSIX, external library dependencies are now refactored with pkg-config
|
|
|
Re: 2020.1 alpha [message #53131 is a reply to message #53123] |
Fri, 06 March 2020 06:06   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
Problem with linking on Mac.
Undefined symbols for architecture x86_64:
"Upp::CocoBeep()", referenced from:
Upp::BeepInformation() in Core$blitz.o
Upp::BeepExclamation() in Core$blitz.o
Upp::BeepError() in Core$blitz.o
Upp::BeepQuestion() in Core$blitz.o
ld: symbol(s) not found for architecture x86_64
Tested against reference/Value
Regards,
Novo
|
|
|
|
Re: 2020.1 alpha [message #53134 is a reply to message #53132] |
Fri, 06 March 2020 11:59   |
omari
Messages: 276 Registered: March 2010
|
Experienced Member |
|
|
MacOS multimonitor issue, appear in the second monitor, when the monitors have different sizes. (the screenshot is from the second monitor)
i noticed that "Ctrl::GetPrimaryScreenArea()" return always the first screen.
Rect Ctrl::GetPrimaryScreenArea()
{
for (NSScreen *screen in [NSScreen screens])
return MakeScreenRect(screen, [screen frame]);
return Rect(0, 0, 0, 0);
}
returning the screen that has the mouse pointer resolve the issue.
Rect Ctrl::GetPrimaryScreenArea()
{
NSPoint mouseLoc = [NSEvent mouseLocation];
NSEnumerator *screenEnum = [[NSScreen screens] objectEnumerator];
NSScreen *screen;
while ((screen = [screenEnum nextObject]) && !NSMouseInRect(mouseLoc, [screen frame], NO));
if(screen)
return MakeScreenRect(screen, [screen frame]);
return Rect(0, 0, 1024, 768);
}
regards
omari.
|
|
|
Re: 2020.1 alpha [message #53140 is a reply to message #53134] |
Sat, 07 March 2020 17:21   |
 |
mirek
Messages: 14257 Registered: November 2005
|
Ultimate Member |
|
|
omari wrote on Fri, 06 March 2020 11:59
Rect Ctrl::GetPrimaryScreenArea()
{
NSPoint mouseLoc = [NSEvent mouseLocation];
NSEnumerator *screenEnum = [[NSScreen screens] objectEnumerator];
NSScreen *screen;
while ((screen = [screenEnum nextObject]) && !NSMouseInRect(mouseLoc, [screen frame], NO));
if(screen)
return MakeScreenRect(screen, [screen frame]);
return Rect(0, 0, 1024, 768);
}

Thanks for catching this.
Well, GetPrimaryScreenArea definitely is not supposed to depend on the mouse, moreover it must rather depend on window's position than on mouse pos.
That said, the correct fix is quite similar - new method GetScreenArea(Point), now in trunk...
Mirek
|
|
|
Re: 2020.1 alpha [message #53171 is a reply to message #53140] |
Wed, 11 March 2020 23:26   |
Oblivion
Messages: 1206 Registered: August 2007
|
Senior Contributor |
|
|
Hello Mirek,
U++ applications fail to have window borders & actions, and have incorrect mouse input on Gnone 3 Wayland session (running on xwayland).
This was not the case with gtk2.
Here is a screenshot of TheIDE on Gnome wayland session (neither borders, window events, nor mouse or key events are correctly recognized):

Here are the debug messages logged on terminal:
(theide:62665): Gdk-CRITICAL **: 01:16:06.150: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed
(theide:62665): Gdk-CRITICAL **: 01:16:06.190: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed
(theide:62665): Gdk-WARNING **: 01:16:06.289: Couldn't map as window 0x56455c0c0450 as popup because it doesn't have a parent
(theide:62665): GLib-GObject-WARNING **: 01:16:07.151: instance with invalid (NULL) class pointer
(theide:62665): GLib-GObject-CRITICAL **: 01:16:07.151: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(theide:62665): GLib-GObject-CRITICAL **: 01:16:07.151: g_object_get: assertion 'G_IS_OBJECT (object)' failed
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Wed, 11 March 2020 23:29] Report message to a moderator
|
|
|
|
Re: 2020.1 alpha [message #53176 is a reply to message #53174] |
Thu, 12 March 2020 16:49   |
Oblivion
Messages: 1206 Registered: August 2007
|
Senior Contributor |
|
|
Hello Mirek,
Today I've looked into the issue more closely:
Good news:
Using the gdk_set_allowed_backends() function does the trick in a proper way.
It can be used to force a GTK3 app to use the x11 (xwayland) backend:
Excerpt from https://developer.gnome.org/gdk3/stable/gdk3-General.html
void
gdk_set_allowed_backends (const gchar *backends);
Sets a list of backends that GDK should try to use.
This can be be useful if your application does not work with certain GDK backends.
By default, GDK tries all included backends.
This call must happen prior to gdk_display_open(), gtk_init(), gtk_init_with_args() or gtk_init_check() in order to take effect.
So I've tried:
gdk_set_allowed_backends ("x11");
I'd suggest putting it into an INIT block.
Now the U++ apps, including TheIDE, are running smooth and fine on wayland. 
Quote:
Is it even possible to run wayland in VirtualBox?
Well, I tried Fedora 31 on VirtualBox. It uses wayland by default and runs just fine here. (No special setup)
I decided to move one of my PCs to Gnome (3.36) wayland backend (I'm using it for nearly two weeks and I'd say it is fantastic!)
Also my laptop (Gnome 3.34) runs wayland too (while wayland on 3.34 has some annoying problems. yet it works.)
What's common for my setups is that my machines don't have NVIDIA gfx cards. Do you use NVidia cards on your machine? Because wayland is known to be very buggy on NVIDIA's drivers.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Thu, 12 March 2020 16:57] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: 2020.1 alpha [message #53204 is a reply to message #53123] |
Wed, 18 March 2020 18:50   |
 |
Klugier
Messages: 1099 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello Mirek,
Small warning on macOS:
/../Applications/TheIDE.app/Contents/SharedSupport/uppsrc/ide/Browser/ItemDisplay.cpp (7): warning: unused variable 'dark' [-Wunused-variable]
(): bool dark = IsDarkTheme();
Fix on trunk.
Sincerely,
Klugier
U++ - one framework to rule them all.
[Updated on: Wed, 18 March 2020 20:06] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sun May 11 15:30:09 CEST 2025
Total time taken to generate the page: 0.01872 seconds
|
|
|