Skip to content
This repository was archived by the owner on Jun 30, 2023. It is now read-only.

Commit 3dfbc19

Browse files
committed
support mouse events on multiple grids
1 parent ebf36da commit 3dfbc19

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

neovim_gui/gtk_ui.py

+13-12
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def __init__(self, font):
8787
self._font_size = font[1]
8888
self._attrs = None
8989
self._busy = False
90-
self._mouse_enabled = False
90+
self._mouse_enabled = True
9191
self._insert_cursor = False
9292
self._blink = False
9393
self._blink_timer_id = None
@@ -115,10 +115,10 @@ def create_drawing_area(self, handle):
115115
window.connect('delete-event', self._gtk_quit)
116116
window.connect('key-press-event', self._gtk_key)
117117
window.connect('key-release-event', self._gtk_key_release)
118-
window.connect('button-press-event', self._gtk_button_press)
119-
window.connect('button-release-event', self._gtk_button_release)
120-
window.connect('motion-notify-event', self._gtk_motion_notify)
121-
window.connect('scroll-event', self._gtk_scroll)
118+
window.connect('button-press-event', partial(self._gtk_button_press, self.g))
119+
window.connect('button-release-event', partial(self._gtk_button_release, self.g))
120+
window.connect('motion-notify-event', partial(self._gtk_motion_notify, self.g))
121+
window.connect('scroll-event', partial(self._gtk_scroll, self.g))
122122
window.connect('focus-in-event', self._gtk_focus_in)
123123
window.connect('focus-out-event', self._gtk_focus_out)
124124
window.show_all()
@@ -404,7 +404,7 @@ def _gtk_key(self, widget, event, *args):
404404
def _gtk_key_release(self, widget, event, *args):
405405
self._im_context.filter_keypress(event)
406406

407-
def _gtk_button_press(self, widget, event, *args):
407+
def _gtk_button_press(self, g, widget, event, *args):
408408
if not self._mouse_enabled or event.type != Gdk.EventType.BUTTON_PRESS:
409409
return
410410
button = 'Left'
@@ -415,24 +415,25 @@ def _gtk_button_press(self, widget, event, *args):
415415
col = int(math.floor(event.x / self._cell_pixel_width))
416416
row = int(math.floor(event.y / self._cell_pixel_height))
417417
input_str = _stringify_key(button + 'Mouse', event.state)
418-
input_str += '<{0},{1}>'.format(col, row)
418+
input_str += '<{},{},{}>'.format(g.handle, col, row)
419+
print(input_str,file=sys.stderr)
419420
self._bridge.input(input_str)
420421
self._pressed = button
421422
return True
422423

423-
def _gtk_button_release(self, widget, event, *args):
424+
def _gtk_button_release(self, g, widget, event, *args):
424425
self._pressed = None
425426

426-
def _gtk_motion_notify(self, widget, event, *args):
427+
def _gtk_motion_notify(self, g, widget, event, *args):
427428
if not self._mouse_enabled or not self._pressed:
428429
return
429430
col = int(math.floor(event.x / self._cell_pixel_width))
430431
row = int(math.floor(event.y / self._cell_pixel_height))
431432
input_str = _stringify_key(self._pressed + 'Drag', event.state)
432-
input_str += '<{0},{1}>'.format(col, row)
433+
input_str += '<{},{},{}>'.format(g.handle, col, row)
433434
self._bridge.input(input_str)
434435

435-
def _gtk_scroll(self, widget, event, *args):
436+
def _gtk_scroll(self, g, widget, event, *args):
436437
if not self._mouse_enabled:
437438
return
438439
col = int(math.floor(event.x / self._cell_pixel_width))
@@ -444,7 +445,7 @@ def _gtk_scroll(self, widget, event, *args):
444445
else:
445446
return
446447
input_str = _stringify_key(key, event.state)
447-
input_str += '<{0},{1}>'.format(col, row)
448+
input_str += '<{},{},{}>'.format(g.handle, col, row)
448449
self._bridge.input(input_str)
449450

450451
def _gtk_focus_in(self, *a):

0 commit comments

Comments
 (0)