Re: [Lazarus] Gtk 1.2 fixes (again)
On Thu, Feb 17, 2022 at 1:24 PM Tarnyko via lazarus wrote: > From memory, Windows 95 would be the target of such a version (98 already > supports an early GTK+ 2.x). Is that your target? I was talking about native Win9x support for the Win32 widgetset (not GTK widgetset on Windows). -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
From memory, Windows 95 would be the target of such a version (98 already supports an early GTK+ 2.x). Is that your target? (just as denisgolovan said, I salute such an effort -as little as the market may be, and as long as it's doesn't delay/impede main stuff) Kostas Michalopoulos via lazarus writes: On 2/13/22 23:41, Maxim Ganetsky via lazarus wrote: But I still can't understand, why you put so much an effort into an ancient and obsolete widgetset. I only spent 2-3 days, including getting Gtk 1.2 itself to compile and tracking down a gdk_pixbuf version that was compatible with Gtk 1.x, it wasn't that big of an effort. As to why, as i wrote in the comment in the merge request, i was curious about the Gtk 1.2 state, noticed that it didn't work and decided to fix it. I just simply like it when software doesn't drop support for old stuff just because they are old. I am into retrocomputing and various retrocomputing communities and i like being able to use modern software in retro environments (if anything i'd like to see what it'd take to bring back Win9x support to both FPC and Lazarus as in a game i made for a gamejam a couple of years ago i had to use several year old versions of FPC to make a Win9x version that would work with graphics cards on my older computers - like 3dfx Voodoo - and couldn't make the editor available for it because it wouldn't compile on the last Lazarus that supported Win9x - at least i was able to use the latest FPC for the DOS version, which is great). Beyond that, as i wrote in the merge request, MUI is even more "ancient" and yet Lazarus added support for it recently. I do not see why it being called obsolete by its original developers means that one couldn't work on it if they want, it is open source after all, the entire point is having the freedom to do things like that. Also i do not see why this is such an issue, the code is there and doesn't bother anyone - it isn't like i as a user who mostly works with win32 and gtk2 am bothered about the existence of gtk3/gtk4/cocoa/carbon/mui/fpgui/customdrawn/whatever. The worst that happens is that it takes a couple of MB of disk space in the source checkout. > IMHO finishing fpGUI widgetset makes much more sense. AFAIK fpGUI hasn't seen a release in years now and i think the development version has several incompatible changes, meaning that if anyone works on it now they may have a Gtk2->Gtk3->Gtk4 situation where they'll need to go and spend time getting the code base in a working state. TBH i am not a fan of APIs that break themselves - i'd rather make a Motif backend (it is technically still developed :-P and even theoretically an IEEE standard - or, well, it was at some point) as its API has a stability that goes back to the early 90s. While it'd be neat if there was support for it, it isn't something i personally find interesting. Also why fpGUI specifically and not the custom drawn widgetset instead? It does seem have some issues but at least this one seems to be 100% on Lazarus instead of relying on an external project to remain working. Kostas -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
On Sun, Feb 13, 2022 at 10:58 PM Kostas Michalopoulos via lazarus wrote: > > On 2/13/22 21:33, Sven Barth via lazarus wrote: > > Bart means the internal, private Lazarus developer list. > > I see, but then why tell me? :-P So that would know it is debated and not simply ignored. -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
Am 13.02.2022 um 23:22 schrieb Kostas Michalopoulos via lazarus: Beyond that, as i wrote in the merge request, MUI is even more "ancient" and yet Lazarus added support for it recently. I do not see why it being called obsolete by its original developers means that one couldn't work on it if they want, it is open source after all, the entire point is having the freedom to do things like that. While MUI might be ancient it's still actively used by current operating systems, namely MorphOS and AROS (and of course Amiga operating systems themselves, but they aren't actively developed anymore). Note: I'm not critizing your effort, in fact I'm welcoming it as myself want to find the time to make sure that current Lazarus works correctly on PowerPC Mac with Carbon again. Regards, Sven -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
Am 13.02.2022 um 22:58 schrieb Kostas Michalopoulos via lazarus: On 2/13/22 21:33, Sven Barth via lazarus wrote: Bart means the internal, private Lazarus developer list. I see, but then why tell me? :-P To explain to you that your request is looked at and why there might be delays in deciding about it. Regards, Sven -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
>From "Kostas" > As to why, as i wrote in the comment in > the merge request, i was curious about the Gtk 1.2 state, noticed that > it didn't work and decided to fix it. I just simply like it when > software doesn't drop support for old stuff just because they are old. I > am into retrocomputing and various retrocomputing communities and i like > being able to use modern software in retro environments (if anything i'd > like to see what it'd take to bring back Win9x support to both FPC and > Lazarus as in a game i made for a gamejam a couple of years ago i had to > use several year old versions of FPC to make a Win9x version that would > work with graphics cards on my older computers - like 3dfx Voodoo - and > couldn't make the editor available for it because it wouldn't compile on > the last Lazarus that supported Win9x - at least i was able to use the > latest FPC for the DOS version, which is great). Personally, I have deep respect to people who fight against entropy (in all senses). That make FPC/Lazarus community so special in my view. Please go on. -- Regards, Denis Golovan -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
On 2/13/22 23:41, Maxim Ganetsky via lazarus wrote: But I still can't understand, why you put so much an effort into an ancient and obsolete widgetset. I only spent 2-3 days, including getting Gtk 1.2 itself to compile and tracking down a gdk_pixbuf version that was compatible with Gtk 1.x, it wasn't that big of an effort. As to why, as i wrote in the comment in the merge request, i was curious about the Gtk 1.2 state, noticed that it didn't work and decided to fix it. I just simply like it when software doesn't drop support for old stuff just because they are old. I am into retrocomputing and various retrocomputing communities and i like being able to use modern software in retro environments (if anything i'd like to see what it'd take to bring back Win9x support to both FPC and Lazarus as in a game i made for a gamejam a couple of years ago i had to use several year old versions of FPC to make a Win9x version that would work with graphics cards on my older computers - like 3dfx Voodoo - and couldn't make the editor available for it because it wouldn't compile on the last Lazarus that supported Win9x - at least i was able to use the latest FPC for the DOS version, which is great). Beyond that, as i wrote in the merge request, MUI is even more "ancient" and yet Lazarus added support for it recently. I do not see why it being called obsolete by its original developers means that one couldn't work on it if they want, it is open source after all, the entire point is having the freedom to do things like that. Also i do not see why this is such an issue, the code is there and doesn't bother anyone - it isn't like i as a user who mostly works with win32 and gtk2 am bothered about the existence of gtk3/gtk4/cocoa/carbon/mui/fpgui/customdrawn/whatever. The worst that happens is that it takes a couple of MB of disk space in the source checkout. > IMHO finishing fpGUI widgetset makes much more sense. AFAIK fpGUI hasn't seen a release in years now and i think the development version has several incompatible changes, meaning that if anyone works on it now they may have a Gtk2->Gtk3->Gtk4 situation where they'll need to go and spend time getting the code base in a working state. TBH i am not a fan of APIs that break themselves - i'd rather make a Motif backend (it is technically still developed :-P and even theoretically an IEEE standard - or, well, it was at some point) as its API has a stability that goes back to the early 90s. While it'd be neat if there was support for it, it isn't something i personally find interesting. Also why fpGUI specifically and not the custom drawn widgetset instead? It does seem have some issues but at least this one seems to be 100% on Lazarus instead of relying on an external project to remain working. Kostas -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
On 2/13/22 21:33, Sven Barth via lazarus wrote: Bart means the internal, private Lazarus developer list. I see, but then why tell me? :-P Kostas -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
12.02.2022 20:25, Kostas Michalopoulos via lazarus пишет: Sending this mail again since it didn't arrive last time (can't even see it in the archives). This is actually my third attempt, using my gmail account now (i tried my own email - not sure if it didn't pass through because the other one wasn't subscribed or due to some configuration issue... the mailing list page mentions that i only need to be subscribed to receive messages, not to send them too so i assumed it'd work - in the former case, i wonder how many of my replies were ignored since i switched to my own domain's account). --- Hi all, I submitted some fixes for the Gtk 1.2 LCL backend here that should bring it in working state (as it is right now it doesn't build due to some procs being moved to other units and even after adding those it barely works, windows get moved to 0,0, changing desktops or shading windows is broken, opening various dialogs crashes the program and other nice stuff :-P). https://gitlab.com/freepascal.org/lazarus/lazarus/-/merge_requests/69 In the meantime your fixes have been merged. But I still can't understand, why you put so much an effort into an ancient and obsolete widgetset. IMHO finishing fpGUI widgetset makes much more sense. -- Best regards, Maxim Ganetsky mailto:gan...@narod.ru -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
Kostas Michalopoulos via lazarus schrieb am So., 13. Feb. 2022, 18:31: > On 2/13/22 16:49, Bart via lazarus wrote: > > On Sat, Feb 12, 2022 at 6:25 PM Kostas Michalopoulos via lazarus > > wrote: > > > > This is currently being discussed on the devel ML. > > > > Isn't this the development mailing list? Most of the discussion seems to > be about Lazarus' development and can't find any other list mentioned in > https://lists.lazarus-ide.org/ Bart means the internal, private Lazarus developer list. Regards, Sven -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
On 2/13/22 16:49, Bart via lazarus wrote: On Sat, Feb 12, 2022 at 6:25 PM Kostas Michalopoulos via lazarus wrote: This is currently being discussed on the devel ML. Isn't this the development mailing list? Most of the discussion seems to be about Lazarus' development and can't find any other list mentioned in https://lists.lazarus-ide.org/ Kostas -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Gtk 1.2 fixes (again)
On Sat, Feb 12, 2022 at 6:25 PM Kostas Michalopoulos via lazarus wrote: This is currently being discussed on the devel ML. -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Gtk 1.2 fixes (again)
Sending this mail again since it didn't arrive last time (can't even see it in the archives). This is actually my third attempt, using my gmail account now (i tried my own email - not sure if it didn't pass through because the other one wasn't subscribed or due to some configuration issue... the mailing list page mentions that i only need to be subscribed to receive messages, not to send them too so i assumed it'd work - in the former case, i wonder how many of my replies were ignored since i switched to my own domain's account). --- Hi all, I submitted some fixes for the Gtk 1.2 LCL backend here that should bring it in working state (as it is right now it doesn't build due to some procs being moved to other units and even after adding those it barely works, windows get moved to 0,0, changing desktops or shading windows is broken, opening various dialogs crashes the program and other nice stuff :-P). https://gitlab.com/freepascal.org/lazarus/lazarus/-/merge_requests/69 With the patch applied the IDE seems to work fine for the most part. There are some glitches (e.g. the main window doesn't get the proper height at first try but shading/unshading it or changing desktop and coming back or even just changing active tab in the component palette - basically anything that causes it to recalculate the height after it has been visible for a bit - fixes it so it is more of an annoyance than a blocker) but it works. Similarly it seems to use the wrong mouse cursor in some cases. I've also tried a bunch of examples as well as some of my own projects and anything that didn't need functionality that wouldn't exist in Gtk 1.2 anyway seemed to work fine. I might check those at some point but for now i wanted to fix the more broken things, like windows not being positioned correctly, the IDE getting minimized when switching desktops and crashing when trying to open some forms like the console output or the Lazarus build configuration. Especially that last one since i spend the whole day trying to track it down (and turned out to be a bug in Gtk 1.2 that is only triggered in specific creation order for notebook pages - which i had to work around). There are a couple of hacks in there that might have been done better (but still beats the current state of not working at all :-P): 1. The Gtk 1.2 LCL backend treats the unmapping as if it was a minimize event but that isn't strictly correct since unmapping can also happen when a window is shaded or when the current desktop changes. In either case you do not want all application windows to be minimized (which is what normally happens for a minimize event). There was some code to check for the desktop change case but there is a race condition which triggers with modern fast desktops (i guess it was written a long time ago) where the unmap event happens before the window manager switches desktops. I added a check for the shaded state and... a hacky Sleep for 100ms (happens only once even with multiple unmapped windows) to avoid the race condition :-P. Even at 10ms seemed to work but i put it at 100ms which seem safe. 2. The ScrollWindowEx function was not implemented at all and some controls, like the tree widget seem to rely on it for visual updates when scrolling, which in practice means that nothing scrolls when you use the scrollbar or the mouse wheel over the control. With my patch it still doesn't work, but i made it invalidate the control that requested the scroll which causes it to fully draw itself (and adds the ironic twist where the control uses ScrollWindowEx to optimize draws but ends up doing more work instead :-P). The call still returns False (ie. it failed) so it shouldn't break anything as the invalidation could theoretically come from anything - ie. some overzealous window manager or something. In theory some control could rely on scrolling to display partial animations but that control would have been broken in Gtk 1.2 anyway. I have also tried the OpenGL control but it doesn't seem to build. I've spent very little time on it though but i'll try to fix it in a separate patch. Note that the link above also contains a link to the Gtk 1.2 libraries (source code) that the LCL backend relies on that should compile with current Linux OSes (though there will be some warnings). Gtk and glib are from Slackware and with its patches applied with some minor mod and Gdk_pixbuf (which Slackware doesn't seem to carry - or at least not the version needed by the Gtk 1.2 backend since there is the Gtk 2.x verson) is from an old Red Hat source distribution (might not be the latest version but LCL doesn't seem to use it much - it might be possible to remove the current dependency so that things work in Slackware out of the box as it seems to be one of the very few distributions that still ship with Gtk 1.2) that i have fixed to build and install without (much) problem. So if you want to test it