Git Product home page Git Product logo

Comments (10)

robbertkl avatar robbertkl commented on July 28, 2024

Mentioning @avaidyam since he also checked out the DFR* frameworks and might have a clue.

from touchbardemoapp.

avaidyam avatar avaidyam commented on July 28, 2024

It does have this behavior for the on-screen touchbar, doesn't it? I can take a look at it but I don't have any iOS devices.

from touchbardemoapp.

robbertkl avatar robbertkl commented on July 28, 2024

Well, the Touch Bar works fine, at least when you use the physical keyboard, not when using our iOS keyboard or the macOS keyboard viewer. Just open the keyboard viewer and display the on-screen Touch Bar and try holding Fn on the keyboard viewer. No iPad needed (it does exactly the same as the keyboard viewer anyway).

from touchbardemoapp.

avaidyam avatar avaidyam commented on July 28, 2024

Ah, I see what you mean. Unfortunately, I think that's a limitation of the emulated keyboard(s) -- when pressing the Fn key, it's not sending a flags changed event but when another key is pressed, it then sends the equivalent Fn+Key event. I can look into that more later. Exam in 15 minutes. 😂

from touchbardemoapp.

robbertkl avatar robbertkl commented on July 28, 2024

Actually it does generate a flags changed event. That's why toggling the on-screen Touch Bar does work, even in the keyboard viewer and our virtual iPad keyboard.

The physical keyboard generates the exact same flags changed event, except somehow it also "notifies" the Touch Bar agent to show the function row (or whatever you've setup to show when holding Fn). Perhaps this is done by the TouchBarUserDevice, or maybe the Touch Bar agent is monitoring this by itself. Perhaps there is a private API that we can use to toggle the Touch Bar "secondary state", but so far we've been unable to find it.

Anyway, good luck on your exam! 😄

from touchbardemoapp.

avaidyam avatar avaidyam commented on July 28, 2024

Ah I see. I'll take a look at it now, on account of me probably acing that exam! I'll report back in a bit, lol. 😆

from touchbardemoapp.

avaidyam avatar avaidyam commented on July 28, 2024

So I believe it has to do with TouchBarAgent.FnKey and TouchBarAgent.UIServer, but the TouchBarAgent binary is primarily Swift. Hopper doesn't do a great job of decompiling into Swift right now, so that's going to be very hard.

from touchbardemoapp.

sonvirgo avatar sonvirgo commented on July 28, 2024

found this, worth to have a look https://red-sweater.com/touche/

from touchbardemoapp.

avaidyam avatar avaidyam commented on July 28, 2024

@sonvirgo Disassembling that app shows nothing new or different from this one.
@robbertkl We could skip a step or two and use the Xcode method which is the IDE*Simulator class from the DRFSupport.framework.

from touchbardemoapp.

robbertkl avatar robbertkl commented on July 28, 2024

@sonvirgo That app has exactly the same behavior when holding Fn on the keyboard viewer: it does not work.

@avaidyam Yeah, we also ran into the Hopper/Swift issue. How would the "Xcode method" help here? Even Xcode's "Show Touch Bar" does not show the function row when holding Fn on the keyboard viewer.

from touchbardemoapp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.