Aktuelle Zeit: 21.09.2018 23:43

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Mac Touchbar Workaround
BeitragVerfasst: 15.08.2017 14:25 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Nicht nur Purebasic hat ein problem mit der Touchbar.
So lange das Problem nicht gelöst wurde, habe ich ein Workaround dafür.
Das OS merkt sich die Einstellung für die Applikation. Möchte man die Touchbar verwenden, muss diese auch wieder aktiviert werden.

Update v1.03

Code:
;-TOP

; Touchbar workaround by mk-soft
; Version v1.03
; Date 08/15/2017

Procedure IsTouchbar()
  Protected standardUserDefaults, r1
  standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
  r1 = CocoaMessage(0, standardUserDefaults, "integerForKey:$", @"NSFunctionBarAPIEnabled")
  ProcedureReturn r1
EndProcedure

Procedure DisableTouchbar()
  Protected standardUserDefaults
  If IsTouchbar()
    standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
    CocoaMessage(0, standardUserDefaults, "setBool:", #NO, "forKey:$", @"NSFunctionBarAPIEnabled")
    RunProgram(ProgramFilename(), ProgramParameter(), GetCurrentDirectory())
    End
  EndIf
EndProcedure

Procedure EnableTouchbar()
  Protected standardUserDefaults
  If IsTouchbar() = 0
    standardUserDefaults = CocoaMessage(0, 0, "NSUserDefaults standardUserDefaults")
    CocoaMessage(0, standardUserDefaults, "setBool:", #YES, "forKey:$", @"NSFunctionBarAPIEnabled")
    RunProgram(ProgramFilename(), ProgramParameter(), GetCurrentDirectory())
    End
  EndIf
EndProcedure

; ***************************************************************************************

CompilerIf #PB_Compiler_IsMainFile
 
  DisableTouchbar()
 
  If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    Delay(100)
    ; this website doesn't crash the app
    ;WebGadget(0, 10, 10, 580, 280, "http://www.apple.com")
    ; this website crashes the app
    WebGadget(0, 10, 10, 580, 280, "http://google.com")
   
    Repeat
      ; crash with "http://google.com"
    Until WaitWindowEvent() = #PB_Event_CloseWindow  ; <- Invalid memory access
  EndIf
CompilerEndIf

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye