LongDirtyAnimAlf / fpcupdeluxe

A GUI based installer for FPC and Lazarus
490 stars 89 forks source link

After installing Docking, the dock layout is borked #668

Closed gcarreno closed 7 months ago

gcarreno commented 7 months ago

Hey @LongDirtyAnimAlf,

I'm not really sure this should be reported here, since I'm not quite certain of what's going wrong, and what creates the config files.

The thing is this: After I install the docking, and run Lazarus, it shows up on the top left corner, with about one fifth or less of the width and height and the docks are all messed up.

How can we debug this please?

Cheers, Gus

LongDirtyAnimAlf commented 7 months ago

OS ? CPU ? Lazarus version ? FPC version ?

gcarreno commented 7 months ago

Hey @LongDirtyAnimAlf,

ARGH!!! Always forget those !!!

Ubuntu 23.10 64b Latest 3.2 release.

Cheers, Gus

LongDirtyAnimAlf commented 7 months ago

Thanks for the info. However, I am not going to investigate this. Lazarus itself and all apps build with Lazarus are showing GUI problems on the newest Linux distros. Not only Lazarus suffers from this, but also fpcupdeluxe and all apps I use in my personal projects. Lazarus is using GTK2. And this is old. And this might be the cause of these problems. And also the fact that some distros use Wayland as display-server (all latest Raspbian). I am switching to QT5 and QT6 for my personal projects. When doing so, everything runs smooth.

synopse commented 7 months ago

@LongDirtyAnimAlf Very intriguing. Do you have any reference material about those compatibility problems with Lazarus/GTK2 and recent Linux distros? I don't have any trouble with Debian 12, even with Wayland.

gcarreno commented 7 months ago

Hey @LongDirtyAnimAlf,

Okydokes, no problem. I see your point.

I was just trying to find out if this is an fpcupdeluxe issue generating the config files. I was able to make 3.2 work, temporarily, with a config file from 3.0. But then gave up because all the paths were wrong...

I'll try and get help from the Lazarus Forums.

Nonetheless thanks !!

Cheers, Gus

LongDirtyAnimAlf commented 7 months ago

@synopse I am developing on Windows. To be able to create a GUI-app that works on all systems, anchoring of GUI controls is needed. So, no fixed positions, but positions relative to other controls. In that case, all resizing is performed by widget set magic. In recent times, when starting my apps on Linux GTK2 (e.g. fpcupdeluxe), flickering and resizing of controls occurs for the first 30 seconds after start. Also, longer running apps (data loggers) stop updating the GUI message loop after a few hours (or days), resulting in a stalled GUI. When switching to QT5 or QT6 all is ok. Message loop keeps running. No flickering. Instant start without resizing. This is a severe problem. But I am not going to dive in, due to the fact that GTK2 is old. If Lazarus wants help with GTK4, I will join the efforts. But this is non-trivial and also subject to discussions. Also, Wayland should be given some thoughts. But again, subject to discussions. So, I am waiting for decisions (by the Lazarus devs). Until that time: QT5/6 for my long running apps; uptime for months without any hiccups.

synopse commented 7 months ago

Thanks a lot for the feedback! Very interesting!

LongDirtyAnimAlf commented 7 months ago

@gcarreno It is important to distinguish between fpcupdeluxe problems and Lazarus problems. In your case:

LongDirtyAnimAlf commented 7 months ago

@synopse Sidenote. The developer of the QT5/6 interface has done (and is doing) a tremendous job ! (I even use his method of flattening C++ towards plain C in my own projects: using C++ libraries on embedded systems with FPC apps running on the Wio terminal, a SAMD device running FreeRTOS). As QT6 can be compiled towards web-assembly, this is the most promising path towards running plain Lazarus (and apps made by Lazarus) in the browser. And QT works well with Wayland and many other screen servers. This is also why I asked you about goto's in the mORMot ... ;-)

gcarreno commented 7 months ago

Hey @LongDirtyAnimAlf,

* install Lazarus from official sources/binaries.

This is what I always do: Install from GitLab.

* install the OPM.

Yeap, that's done!

* use OPM to install docked.

Ermmmm, you sure that AnchorDocking is on OPM? Was not aware of that. Have to check!! I used both the button on the Modules tab, and by going to the Packages dialog on Lazarus. And in both cases, no luck. But I'll try using OPM for this, cuz my memory is crap and I don't remember seeing AnchorDocking on OPM.

  If the above works, the problem might be caused by fpcupdeluxe.

One thing you haven't completely clarified: Is it fpcupdeluxe or the actual make that produce the config files under install/config_lazarus?

Cheers, Gus

LongDirtyAnimAlf commented 7 months ago

You are right. AnchorDocking is available by default. No need for OPM. Fpcupdeluxe creates a skeleton of some config files. Just to predefine some paths to be able to compile Lazarus and preventing the Makefile and lazbuild looking for tools and settings in the PATH.

gcarreno commented 7 months ago

Hey @LongDirtyAnimAlf,

You are right. AnchorDocking is available by default. No need for OPM.

No probs!! My memory is crap and I'm always doubting myself !!

Fpcupdeluxe creates a skeleton of some config files. Just to predefine some paths to be able to compile Lazarus and preventing the Makefile and lazbuild looking for tools and settings in the PATH.

I'm assuming that those skeleton config files don't mess with the layout for AnchorDocking, right?

If I'm quite honest, I don't even know if environment.xml is the correct file to look at or mess about!!

Cheers, Gus