Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: bonmario - Aprile 15, 2025, 12:01:55 pm
-
Ciao a tutti,
da un paio di settimane mi succede una cosa fastidiosa sul PC di casa su cui c'è installato Ubuntu, con Cinnamon come DE.
Faccio un esempio con Firefox, ma la stessa cosa succede con qualsiasi programma "non Lazarus", ed almeno un programma "fatto con Lazarus".
Succede questo: apro Firefox, e dopo qualche minuto apro il mio programma "pippo" scritto con Lazarus.
Ad un certo punto, voglio tornare a Firefox, quindi nella barra delle applicazioni che c'è in basso, clicco sull'icona di Firefox, ma non succede niente: il mio programma "pippo" resta in primo piano. Se invece uso la combinazione "ALT + TAB", il passaggio tra i 2 programmi avviene correttamente.
Almeno 2 de programmi Lazarus con cui mi succede, li uso anche al lavoro con Windows 11, dove non ho questo problema, e sempre loro, fino a circa 2 settimana fa si comportavano normalmente anche a casa.
Io credo che il problema sia in Ubuntu + Cinnamon, ma visto che questa cosa succede solo con i programmi scritti in Lazarus, provo a chiedere anche a voi se vi viene in mente qualcosa
Grazie, Mario
-
Non posso darti un aiuto concreto, ma dubito che un programma Lazarus possa bloccare appositamente la "barra delle applicazioni" di un desktop (a meno di non fare qualcosa di specifico).
E' più probabile che qualche aggiornamento Ubuntu / Cinnamon / driver grafico e/o Wyland abbia provocato l'anomalia.
-
devi fare qualche prova, a me non è mai capitato quindi non so dirti
prova a vedere se puoi fare lo switch tra wayland e X11 ad esempio
io ho notato diversi comportamenti anomali con wayland
altra cosa che ti posso dire è se provi con una macchina virtuale con, ad esempio xfce o kde
in alternativa puoi cercare in giro se qualcuno (anche se non usa Lazarus come strumento di sviluppo) abbia avuto una anomalia simile
magari è un problema più ampio e ci sono delle info in giro
-
altra cosa che ti posso dire è se provi con una macchina virtuale con, ad esempio xfce o kde
Mi hai dato un'idea ... posso sfruttare il weekend lungo per tirare su una masul mio PChina virtuale, prima con Cinnamon: se lì funziona, c'è qualcosa nalla mia installazione che non va.
Se invece non funziona nemmeno lì, provo prima con xfce, che è meno esoso, e poi magari con Kde.
Grazie !
-
Come altra info generica, vedo che per gli applicativi (anche in Lazarus nel forum internazionale) si consiglia di sviluppare con per QT e non per GTK se si usa Wayland.
Lazarus e FPC dovrebbero avere la possibilità di "linkare" le librerie QT invece delle GTK. Avevo fatto a suo tempo una prova e a me aveva funzionato.
Magari non tutti i componenti sono compatibili con QT, però sicuramente nel futuro ci saranno e creeranno sicuramente migliore stabilità con Wayland.
La problematica futura di usare X1 sarà il mancato supporto dei costruttori di hardware come Nvidia sui nuovi device, e sarà uno scoglio invalicabile anche per Linux nonostante la sua apertura.
-
Ok, grazie, avevo provato a passare a QT qualche anno fa, ma non ci ero riuscito, a causa di vari errori.
Eventualmente ci riprovo.
Ciao, Mario
-
Trovato il colpevole: Cinamon !!!
Infatti nella macchina virtuale appena avviata, funziona tutto normalmente. Dopo aver installato ed avviato Cinnamon, inizia il problema descritto nel primo post.
Grazie, Mario
-
Mistero quasi risolto ...
Oggi mi sono accorto nel nei files .lfm di alcuni progetti, la proprietà "FormStyle", è impostata su "fsStayOnTop".
Rimettendola su "fsNormal", il problema si risolve
Ora devo solo capire come mai, visto anche che normalmente quel valore o cambio a runtime, e non nell'object inspector !!!
Ciao, Mario
-
Mistero quasi risolto ...
Oggi mi sono accorto nel nei files .lfm di alcuni progetti, la proprietà "FormStyle", è impostata su "fsStayOnTop".
Rimettendola su "fsNormal", il problema si risolve
Bhè, direi che il mistero "E'" risolto, più che "quasi" ...
Se la Form è in stile fsStayOnTop, il suo comportamento è proprio ciò che tu hai rilevato, ossia l'impossibilità di porla in secondo piano direttamente (ad esempio tramite la barra delle applicazioni) a meno che un'altra "finestra" nel Desktop non sia presente con lo stesso stile.
I tasti ALT TAB usano invece una funzione di sistema operativo (in Windows, forse in Linux è emulata) e quindi possono portare qualunque applicazione in primo piano (unica eccezione è il "task manager" e altre applicazioni come la calcolatrice che usano uno specifico "setting" che non conosco).
Non stà lambiccarti troppo sul perchè quella proprietà è cambiata, anche per me è un dilemma alcune volte, perchè a differenza del codice dove ci puoi mettere ad esempio una "$IFDEF PROVA2025" per testare qualche cambiamento e tornare immediatamente indietro anche su un milione di righe di codice semplicemente togliendo la $DEFINE PROVA2025, sulle proprietà a design time non si può fare e se testi qualcosa (anche solo per curiosità) e ti dimentichi poi di rimettere a posto .... succcede questo.
E anche io come te uso sempre (a meno di casi particolari) il runtime per settare le proprietà, perchè tra l'altro molte volte quando cambi una proprietà "X" a design time te ne trovi altre cambiate ... e che non tornano molto spesso alla condizione originale se torni a settare "X" alla condizione originale. Ho avuto bruttissime esperienze in tale aspetto.
Ciao