2015-04-27 2 views

ответ

1

В lablgtk существует более прямое решение, хотя это не сразу очевидно.

От щелчка мыши события ev (типа GdkEvent.Button.t), вы можете обнаружить события, такие как Ctrl + клик/переход + щелчок GdkEvent.Button.state и Gdk.Convert.modifier), как показано в следующем примере:

let state = GdkEvent.Button.state ev in 
let modifiers = Gdk.Convert.modifier state in 
let button = GdkEvent.Button.button ev in 
if button = 1 && List.mem `CONTROL modifiers then 
    (* Ctrl+left click *) ... 
else if button = 3 && List.mem `SHIFT` modifiers then 
    (* Shift+right click *) ... 

типа списка модификаторов Gdk.Tags.modifier.

Смежные вопросы