Vimium: рдореИрдВрдиреЗ [рдпрд╣рд╛рдБ] (https://github.com/mrmr1993/vimium/tree/right-click-linkhint) рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдИ рд╣реИ, рдЬреЛ `LinkHints.activateModeToTriggerRightClickAction` рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд╛рд▓ рдЪрд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рд╕рд┐рддре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: philc/vimium

рдпрд╣ рдХрд╛рдлреА рдХрдо рдорд╛рдВрдЧ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддрд╛ред

_рдореВрд▓ рд░реВрдк рд╕реЗ @mrmr1993 рджреНрд╡рд╛рд░рд╛ https://github.com/philc/vimium/issues/874#issuecomment -63235870_ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рд╡рд┐рдорд┐рдпрдо рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИ ...

рдпрджрд┐ рдЖрдк рдХреНрд░реЛрдо рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣ рд╢рд╛рдЦрд╛ рд░рд╛рдЗрдЯ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдпрд╛ contextmenu рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП click / mousedown / mouseup рдИрд╡реЗрдВрдЯ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░

рдпрджрд┐ рдЖрдк рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ ae829c8cf8d2bc507653451d9ad940dc5e47d96f (рдЙрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз) рдФрд░ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  • background_scripts/commands.coffee рд╕реАрдзреЗ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ
  • рдХреЙрдкреА simulateContextMenuEvent рдХрд┐ рд░рдЦ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ lib/dom_utils.coffee
  • рдмрдЯрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ simulateClick (рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рд╣реИ) рдФрд░ рдЗрд╕реЗ simulateMouseEvent рднреА рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЕрдВрддрд┐рдо 0 рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ mouseEvent.initMouseEvent рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдЗрд╕ рд╕рд╢рд░реНрдд рдореЗрдВ рдХрд╣реАрдВ button == 0 рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ
  • рдЕрдиреНрдп рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ content_scripts/link_hints.coffee :
RIGHT_CLICK = 
  name: "right-click"
  indicator: "Right click"
  linkActivator: (link) ->
    DomUtils.simulateClick(link, {
      altKey: false,
      ctrlKey: false,
      metaKey: false }, 2)
    DomUtils.simulateContextMenuEvent link
  • RIGHT_CLICK рд╕реЗ available_modes content_scripts/link_hints.coffee
  • activateModeToTriggerRightClickAction (count) -> <strong i="37">@activateMode</strong> count, mode: RIGHT_CLICK рдореЗрдВ рдЕрдиреНрдп рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ content_scripts/link_hints.coffee

рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╢рд╛рдпрдж рдЖрдЧреЗ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЖрджреЗрд╢ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдореИрдВ рд╡рд┐рдорд┐рдпрдо рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рд╡рд┐рдорд┐рдпрдо рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИ ...

рдпрджрд┐ рдЖрдк рдХреНрд░реЛрдо рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╣ рд╢рд╛рдЦрд╛ рд░рд╛рдЗрдЯ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдпрд╛ contextmenu рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП click / mousedown / mouseup рдИрд╡реЗрдВрдЯ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░

рдпрджрд┐ рдЖрдк рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ ae829c8cf8d2bc507653451d9ad940dc5e47d96f (рдЙрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз) рдФрд░ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  • background_scripts/commands.coffee рд╕реАрдзреЗ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ
  • рдХреЙрдкреА simulateContextMenuEvent рдХрд┐ рд░рдЦ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ lib/dom_utils.coffee
  • рдмрдЯрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ simulateClick (рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рд╣реИ) рдФрд░ рдЗрд╕реЗ simulateMouseEvent рднреА рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЕрдВрддрд┐рдо 0 рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ mouseEvent.initMouseEvent рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдЗрд╕ рд╕рд╢рд░реНрдд рдореЗрдВ рдХрд╣реАрдВ button == 0 рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝реЗрдВ
  • рдЕрдиреНрдп рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ content_scripts/link_hints.coffee :
RIGHT_CLICK = 
  name: "right-click"
  indicator: "Right click"
  linkActivator: (link) ->
    DomUtils.simulateClick(link, {
      altKey: false,
      ctrlKey: false,
      metaKey: false }, 2)
    DomUtils.simulateContextMenuEvent link
  • RIGHT_CLICK рд╕реЗ available_modes content_scripts/link_hints.coffee
  • activateModeToTriggerRightClickAction (count) -> <strong i="37">@activateMode</strong> count, mode: RIGHT_CLICK рдореЗрдВ рдЕрдиреНрдп рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ content_scripts/link_hints.coffee

рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╢рд╛рдпрдж рдЖрдЧреЗ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!

+1 рдореБрдЭреЗ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ рдРрдкреНрд╕ рдХреЗ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдорд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВред рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЖрдкрдХреЛ Spotify рдХреЛ рджреЗрдЦрдХрд░)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕