• towerful@programming.dev
      link
      fedilink
      arrow-up
      23
      ·
      edit-2
      2 days ago

      Trying to disable the windows key hotkey that opens the start menu, so the game The Witness can pause stuff, minimize, open the start menu and release the block on the windows key (IE do a more controlled start menu hotkey, instead of having windows rudely interrupt everything and break the game).

      Started with a 5 second hang whenever a debug breakpoint was reached. The dev started digging into the issue.

      Games use RawInput to get better mouse interactions, but that breaks the Microsoft recommended way of disabling windows key (as all input goes through RawInput instead of whatever the other windows API is).
      In the documentation for RawInput, it specifically states the flag to disable the windows key doesn’t work. So the Dev that was debugging the issue didn’t try it. Until the next day when they had the realisation that MSDN windows API docs are garbage, tried the supposedly not-working flag and it actually did work.

      The linked article is quite a good read, actually.
      I had to use one of the mirrors in the SO answer

      Edit:
      The mirror I used https://caseymuratori.com/blog_0006

      • dejected_warp_core@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        1 day ago

        Until the next day when they had the realisation that MSDN windows API docs are garbage, tried the supposedly not-working flag and it actually did work.

        This now leaves us with an uncomfortable question: is the real bug in the docs, or the API implementation? If it’s the latter, it’s at risk of being patched out since the behavior doesn’t match the docs.

        Edit: did a grammar.

        • towerful@programming.dev
          link
          fedilink
          arrow-up
          11
          ·
          1 day ago

          That’s the fun part about windows: who the fuck knows?
          Can’t look at the source, can’t confirm if it’s bad API implementation or bad documentation.