Moin,
Mit LMDE6 und PB 6.12 gelingt mir nicht mehr das Erstellen des SysTrayIcons, wenn als Subsystem GTK2 eingestellt ist.
Mit Subsystem QT wird es zwar erstellt, aber die linke Maustaste wird nicht mehr erkannt, sondern nur die rechte Maustaste.
Ich reagiere auf beide Maustasten mit unterschiedliche Aktionen.
Linke Maus = Popmenü // rechte Maus = Fenster verstecken/vorholen
Das Popmenü wird aber grundsätzlich erstellt, wenn ich es auf die rechten Maustaste lege.
Hat vllt. jemand ein Systray, welches auf die linke Maus reagieren soll?
Bis PB 6.04 lief alles perfekt mit GTK2 als Subsystem
Ich verwende jetzt PureBasic 6.12 Linux Ubuntu 20.04 or 22.04 (x64) auf LMDE6
Systray und linke Maustaste mit LMDE6 und PB 6.12
-
- Beiträge: 123
- Registriert: 22.11.2020 20:05
- Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint und LMDE
Systray und linke Maustaste mit LMDE6 und PB 6.12
--
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
-
- Beiträge: 123
- Registriert: 22.11.2020 20:05
- Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint und LMDE
Re: Systray und linke Maustaste mit LMDE6 und PB 6.12
hab weitergeforscht und folgendes herausgefunden:
Die linke Maus wird sehr wohl erkannt, Eventtype() liefert bei linke Maus= 2 und bei rechte Maus= 1
und so sind die Konstanten belegt:
Debug #PB_EventType_LeftClick ;liefert 0 // kann also nie erfüllt werden
Debug #PB_EventType_RightClick ;liefert 1 // das passt
Hier mal ein Beispiel aus meiner Eventschleife // der Code funktionierte so seit Jahren bei mir
könnte an QT liegen oder an EventType() oder an #PB_EventType_LeftClick. Oder was anderes... 
Die linke Maus wird sehr wohl erkannt, Eventtype() liefert bei linke Maus= 2 und bei rechte Maus= 1
und so sind die Konstanten belegt:
Debug #PB_EventType_LeftClick ;liefert 0 // kann also nie erfüllt werden
Debug #PB_EventType_RightClick ;liefert 1 // das passt
Hier mal ein Beispiel aus meiner Eventschleife // der Code funktionierte so seit Jahren bei mir

Code: Alles auswählen
Case #PB_Event_SysTray ;wenn systray-ereignis angeklickt wurde / egal links,rechts usw.
Debug "Eventtype(): " + EventType() ;Anzeige des tatsächlichen Event-Typs
Select EventType() ;ob, und welche maustaste
Case #PB_EventType_LeftClick ;linke maus
Debug "Linke Maus"
DisplayPopupMenu(50, WindowID(0)) ; zeige jetzt das Popup-Menü an
Case #PB_EventType_RightClick ;rechte maus
Debug "Rechte Maus"
fen_st() ;fenster verstecken oder vorholen (je nach dem, wie es gerade ist)
EndSelect
EndSelect

--
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
-
- Beiträge: 123
- Registriert: 22.11.2020 20:05
- Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint und LMDE
Re: Systray und linke Maustaste mit LMDE6 und PB 6.12
hmm - finde keinen anderen Weg. Ich werte jetzt einfach EventType() direkt mit den Werten 1 oder 2 aus (also ohne die #PB_Konstanten). Erschien mir erstmal am einfachsten. Hoffentlich bleibt das mit der EventType()-Ausgabe so. Und ich muß erstmal meine anderen Codes durchschauen, bevor ich diese für QT kompiliere... 

--
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
Re: Systray und linke Maustaste mit LMDE6 und PB 6.12
Hi jogo,
danke fürs teilen deines ganzen Lösungsweges.
Es scheint hier hat sich tatsächlich ein ziemlicher Bug eingeschlichen.
Hier mal ein kompletter Beispielcode:
Ich kann für QT bestätigen: Linksklick gibt das Event für einen Doppelklick.
Das Event für einen Linksklick bekomme ich beim Mittelklick auf das Icon.
Zeit für einen Bugreport.
Falls du nicht dazu kommst, mache ich das morgen Abend.
danke fürs teilen deines ganzen Lösungsweges.
Es scheint hier hat sich tatsächlich ein ziemlicher Bug eingeschlichen.
Hier mal ein kompletter Beispielcode:
Code: Alles auswählen
UsePNGImageDecoder()
If OpenWindow(0, 100, 150, 300, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu)
LoadImage(0,#PB_Compiler_Home + "examples/sources/Data/world.png")
AddSysTrayIcon(1, WindowID(0), ImageID(0))
SysTrayIconToolTip(1, "PB World")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_SysTray
Eventtype=EventType()
If Eventtype = #PB_EventType_LeftDoubleClick
MessageRequester("SysTray", "Left DoubleClick on SysTrayIcon "+Str(EventGadget()),0)
Else
Debug "Systray event of type "+Str(Eventtype)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Das Event für einen Linksklick bekomme ich beim Mittelklick auf das Icon.
Zeit für einen Bugreport.
Falls du nicht dazu kommst, mache ich das morgen Abend.

-
- Beiträge: 123
- Registriert: 22.11.2020 20:05
- Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint und LMDE
Re: Systray und linke Maustaste mit LMDE6 und PB 6.12
Hi Macros,
Danke für's Feedback War mir nicht sicher, ob es an EventGadget() liegt oder vllt. die Konstanten falsch belegt waren, oder das QT einfach ein falsches Ereignis an EventGadget() meldet.
Wär lieb, wenn du das mit den Bugreport übernehmen würdest - mein englisch ist quasi nicht vorhanden
Danke für's Feedback War mir nicht sicher, ob es an EventGadget() liegt oder vllt. die Konstanten falsch belegt waren, oder das QT einfach ein falsches Ereignis an EventGadget() meldet.
Wär lieb, wenn du das mit den Bugreport übernehmen würdest - mein englisch ist quasi nicht vorhanden

--
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21
Ideen gibt es viele - man muss sie nur haben...
Mint / LMDE5+6 // PureBasic 6.21