Features oder Bugs? AddKeyboardShortcut und OpenWindow

Anfängerfragen zum Programmieren mit PureBasic.
hoerbie
Beiträge: 37
Registriert: 06.12.2013 13:53

Features oder Bugs? AddKeyboardShortcut und OpenWindow

Beitrag von hoerbie »

Hallo,

wo ja derzeit gerade die Arbeiten an der neuen LTS laufen, sind mir zwei Unterschiede zwischen Windows und Mac aufgefallen, wo ich mir als Purebasic-Anfänger nicht sicher bin, ob man das als Bug oder als Feature ansehen sollte. Linux hab ich gerade keins greifbar.

Vielleicht werfen die Profis da mal einen Blick drauf? Mit einer kurzen Suche habe ich zumindest keine ähnlichen Postings gefunden.

1. Unter Windows kann ich mit diesem Skript per Enter von einem zum nächsten String-Gadget springen, und ich bekomme auch das jeweils den Focus verlierende Gadget noch gemeldet, so daß ich z.B. darauf reagieren kann, wenn sich im Gadget vorm Drücken der Enter-Taste der Inhalt geändert hat. Unter OSX funktioniert das Enter zwar zum Weiterspringen, aber ich bekomme keinen verlorenen Focus gemeldet. Wenn man statt meinem Enter-Shortcut nun das normale Tab benutzt, funktioniert der verlorene Focus jedoch unter Windows wie unter OSX.
Im Interesse der Crossplattform-Gleichheit sollte das aber doch wohl auch fürs den Shortcut überall gleich sein, oder?

2. Ich hatte in eine Software ein paar einfache eigene Hinweis-Dialoge gebaut, die unter Windows immer eine gesetzte Titelzeile bekamen, egal ob man bei den Flags von OpenWindow etwas angibt, oder nicht. Beim Mac erscheint die Titelzeile dagegen wirklich nur, wenn man explizit eines der Flags #PB_Window_TitleBar oder #PB_Window_SystemMenu setzt.
Im Interesse von Crossplattform sollte doch hier das Verhalten auch eher identisch sein, oder?

Code: Alles auswählen

EnableExplicit

Global.u prgende
Global.i winid,gdgid,gdgid1,gdgid2,gdgid3,butid,winflags,evtnr,evtyp,menid

winflags = 0; #PB_Window_TitleBar
winid = OpenWindow(#PB_Any, 20, 20, 300, 200, "Test-Window", winflags)

gdgid1 = StringGadget(#PB_Any,5,5,280,20,"Text 1")
gdgid2 = StringGadget(#PB_Any,5,35,280,20,"Text 2")
gdgid3 = StringGadget(#PB_Any,5,65,280,20,"Text 3")
butid = ButtonGadget(#PB_Any,100,150,100,30,"Close")
SetActiveGadget(gdgid1)
AddKeyboardShortcut(winid, #PB_Shortcut_Return, 100)

Repeat
  evtnr = WaitWindowEvent(100)
  If evtnr
    Select evtnr
      Case #PB_Event_Gadget
        gdgid = EventGadget()
        evtyp = EventType()
        If evtyp = #PB_EventType_LostFocus
          If gdgid = gdgid1
            Debug "First gadget lost focus"
          ElseIf gdgid = gdgid2
            Debug "Second gadget lost focus"
          ElseIf gdgid = gdgid3
            Debug "Third gadget lost focus"
          EndIf
        EndIf
        If gdgid = butid
          prgende = 1
        EndIf
      Case #PB_Event_Menu
        menid = EventMenu()
        If menid = 100
          gdgid = GetActiveGadget()
          If gdgid = gdgid1
            SetActiveGadget(gdgid2)
          ElseIf gdgid = gdgid2
            SetActiveGadget(gdgid3)
          ElseIf gdgid = gdgid3
            SetActiveGadget(gdgid1)
          EndIf            
        EndIf
    EndSelect
  EndIf
Until prgende = 1
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Features oder Bugs? AddKeyboardShortcut und OpenWindow

Beitrag von NicTheQuick »

Unter Linux geht es sowohl mit Tab als auch mit Return. Und man bekommt sogar ein "LostFocus", wenn man zwischendurch auf den Fenstertitel klickt. Und die Titelleiste bleibt auch bestehen, wenn der Titel leer ist.
hoerbie
Beiträge: 37
Registriert: 06.12.2013 13:53

Re: Features oder Bugs? AddKeyboardShortcut und OpenWindow

Beitrag von hoerbie »

Danke, dann haben wir da noch eine andere Situation, ein Klick auf die Titelzeile oder in den leeren Teil des Fensters bewirkt unter Windows und OSX nämlich kein LostFocus.

Dafür habe ich gerade noch bemerkt, daß auch bei Klick auf den Close-Button nur unter Windows noch ein LostFocus zum StringGadget kommt, auch da kommt unter OSX keins.

Jeweils getestet mit LTS 5.24 und LTS 5.40b10 unter X64.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Features oder Bugs? AddKeyboardShortcut und OpenWindow

Beitrag von NicTheQuick »

Beim Klick ins Leere Fenster kommt auch kein LostFocus-Event. Nur beim Klick auf die Titelzeile. Das liegt bei Linux aber wohl auch daran, dass die Fenster-Dekoration, also der Rahmen des Fensters, von Fenstermanager erledigt wird und nicht vom Prozess selbst (grob gesagt). Beim Klick auf "Close" kommt unter Linux auch ein LostFocus-Event.
hoerbie
Beiträge: 37
Registriert: 06.12.2013 13:53

Re: Features oder Bugs? AddKeyboardShortcut und OpenWindow

Beitrag von hoerbie »

Also scheint es ein vor allem abweichendes Verhalten des Mac zu geben, ist das einen Bug-Report wert?
Antworten