class_docstr: Glfw backend for Canvas abstract class.
class_docstr_tok: ["Glfw","backend","for","Canvas","abstract","class","."]
docstr: Process (possible) keyboard modifiers
  
  GLFW provides "mod" with many callbacks, but not (critically) the
  scroll callback, so we keep track on our own here.
code: def _process_mod(self, key, down):
      """Process (possible) keyboard modifiers
  
      GLFW provides "mod" with many callbacks, but not (critically) the
      scroll callback, so we keep track on our own here.
      """
      if key in MOD_KEYS:
          if down:
              if key not in self._mod:
                  self._mod.append(key)
          elif key in self._mod:
              self._mod.pop(self._mod.index(key))
      return self._mod
  
imports: from __future__ import division
  import atexit
  from time import sleep
  import gc
  import os
  from ..base import BaseApplicationBackend, BaseCanvasBackend, BaseTimerBackend
  from ...util import keys, logger
  from ...util.ptime import time
  from ...None import config
label_desc: Use image node_id 25 for calling the CanvasBackend obj's underlying member method code with example usage: obj._process_mod(key, down) and returns: self