Description
With Gnome 44, the Double Commander running via XWayland, the windows are not correctly placed / remembered and what not. I assume this is mutter issue. But one solution to this would be if DC supported Wayland. So I though I'll give it a shot and try if Gtk3 is the way to go:
$ lcl=gtk3 ./build.sh beta
... snip ...
(3104) Compiling ./frames/ucomponentssignature.pas
(3104) Compiling uglobs.pas
(3104) Compiling ucolumns.pas
(3104) Compiling uglobs.pas
(3104) Compiling uhotkeymanager.pas
(3104) Compiling ./platform/ukeyboard.pas
/builddir/build/BUILD/doublecmd-1.0.11/src/./platform/ukeyboard.pas(228,1) Fatal: (2003) Syntax error, "identifier" expected but "VAR" found
Fatal: (1018) Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode
Error: (lazarus) Compile Project, Mode: Release, Target: /builddir/build/BUILD/doublecmd-1.0.11/doublecmd: stopped with exit code 1
Error: (lazbuild) failed compiling of project /builddir/build/BUILD/doublecmd-1.0.11/src/doublecmd.lpi
So it seems it got quite far with compilation prior it failed.
Not really knowing what I am doing and not spending too much time with investigation, I naively tweaked the file a bit:
$ git diff
diff --git a/src/platform/ukeyboard.pas b/src/platform/ukeyboard.pas
index 8b6a4426f..170834019 100644
--- a/src/platform/ukeyboard.pas
+++ b/src/platform/ukeyboard.pas
@@ -157,6 +157,8 @@ uses
, Gdk2, GLib2, Gtk2Extra
, Gtk2Proc
{$ENDIF}
+ , LazGdk3, LazGLib2
+ , Gtk3Procs
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(LCLQT)}
, qt4, qtwidgets
@@ -190,16 +192,18 @@ var
XDisplay: PDisplay = nil;
{$ELSEIF DEFINED(LCLGTK2)}
XDisplay: PGdkDisplay = nil;
+ {$ELSEIF DEFINED(LCLGTK3)}
+ XDisplay: PGdkDisplay = nil;
{$ELSEIF (DEFINED(LCLQT) or DEFINED(LCLQT5))}
XDisplay: PDisplay = nil;
{$ENDIF}
{$ENDIF}
-{$IF DEFINED(UNIX) and (DEFINED(LCLGTK) or DEFINED(LCLGTK2))}
+{$IF DEFINED(UNIX) and (DEFINED(LCLGTK) or DEFINED(LCLGTK2) or DEFINED(LCLGTK3))}
var
// This is set to a virtual key number that AltGr is mapped on.
VK_ALTGR: Byte = VK_UNDEFINED;
- {$IF DEFINED(LCLGTK2)}
+ {$IF DEFINED(LCLGTK2) or DEFINED(LCLGTK3)}
KeysChangesSignalHandlerId : gulong = 0;
{$ENDIF}
{$ENDIF}
This helped with the compilation and with some error, resulted in kind of "running" Double Commander:

Well, it does not really work, but if nothing else, it now runs native Wayland.
So I wonder, is the Gtk3 support something what was considered and would be feasible?
Proposed technical implementation details (optional)
No response
Description
With Gnome 44, the Double Commander running via XWayland, the windows are not correctly placed / remembered and what not. I assume this is mutter issue. But one solution to this would be if DC supported Wayland. So I though I'll give it a shot and try if Gtk3 is the way to go:
So it seems it got quite far with compilation prior it failed.
Not really knowing what I am doing and not spending too much time with investigation, I naively tweaked the file a bit:
This helped with the compilation and with some error, resulted in kind of "running" Double Commander:
Well, it does not really work, but if nothing else, it now runs native Wayland.
So I wonder, is the Gtk3 support something what was considered and would be feasible?
Proposed technical implementation details (optional)
No response