ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Mouse​Event​Listener

by SublimeText ST2/ST3

Adds on_pre_click and on_post_click callbacks to Sublime Text's plugin API.

Details

  • 2016.04.27.02.28.57
  • github.​com
  • github.​com
  • 3 years ago
  • 29 minutes ago
  • 7 years ago

Installs

  • Total 2K
  • Win 965
  • OS X 413
  • Linux 383
Jan 18 Jan 17 Jan 16 Jan 15 Jan 14 Jan 13 Jan 12 Jan 11 Jan 10 Jan 9 Jan 8 Jan 7 Jan 6 Jan 5 Jan 4 Jan 3 Jan 2 Jan 1 Dec 31 Dec 30 Dec 29 Dec 28 Dec 27 Dec 26 Dec 25 Dec 24 Dec 23 Dec 22 Dec 21 Dec 20 Dec 19 Dec 18 Dec 17 Dec 16 Dec 15 Dec 14 Dec 13 Dec 12 Dec 11 Dec 10 Dec 9 Dec 8 Dec 7 Dec 6 Dec 5 Dec 4
Windows 2 1 0 1 0 2 0 0 3 0 2 3 1 0 2 0 0 1 1 1 1 0 0 1 0 2 1 0 1 1 2 0 2 0 0 2 0 2 1 0 1 6 0 2 1 2
OS X 0 0 0 0 2 0 0 0 1 0 1 0 0 1 0 0 0 0 2 0 0 1 0 0 0 0 0 0 1 3 1 0 1 0 0 0 1 1 0 2 0 0 1 0 0 0
Linux 0 4 2 1 0 0 0 0 2 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 2 0 0 0 1 3 1

Readme

Source
raw.​githubusercontent.​com

MouseEventListener

MouseEventListener adds two new callbacks to Sublime Text 2's plugin API:

  • on_pre_click({'event': {'x': screen_x, 'y': screen_y, 'button': button}})
  • on_post_click(text_point)

An important thing to note is that the selection is modified not once but twice in between on_pre_mouse_down and on_post_mouse_down—this is done to determine the text_point of the click, as Sublime Text 2 has no API to translate a screen x and y into a text_point other than by calling drag_select and seeing where the selection ends up.

A second important thing to note is that mouse-up currently cannot be captured using Sublime Text 2's API. Hopefully this will be added in the future. However, this means that drags cannot be detected! other than perhaps by carefully monitoring the selection as it changes and just guessing. Additionally, on_selection_modified fires on mouse up in most cases.

Install

This plugin is available through Package Control, which is available here:

http://wbond.net/sublime_packages/package_control

As far as I know, Package Control does not handle dependencies, so if you depend on this package you may have to mention installing it in your install instructions.