|
|
|
@ -45,6 +45,7 @@ namespace Avalonia.Gtk3 |
|
|
|
ConnectEvent("window-state-event", OnStateChanged); |
|
|
|
ConnectEvent("key-press-event", OnKeyEvent); |
|
|
|
ConnectEvent("key-release-event", OnKeyEvent); |
|
|
|
ConnectEvent("leave-notify-event", OnLeaveNotifyEvent); |
|
|
|
Connect<Native.D.signal_generic>("destroy", OnDestroy); |
|
|
|
Native.GtkWidgetRealize(gtkWidget); |
|
|
|
_lastSize = ClientSize; |
|
|
|
@ -194,6 +195,18 @@ namespace Avalonia.Gtk3 |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
private unsafe bool OnLeaveNotifyEvent(IntPtr w, IntPtr pev, IntPtr userData) |
|
|
|
{ |
|
|
|
var evnt = (GdkEventCrossing*) pev; |
|
|
|
var position = new Point(evnt->x, evnt->y); |
|
|
|
Input(new RawMouseEventArgs(Gtk3Platform.Mouse, |
|
|
|
evnt->time, |
|
|
|
_inputRoot, |
|
|
|
RawMouseEventType.Move, |
|
|
|
position, GetModifierKeys(evnt->state))); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
private unsafe bool OnCommit(IntPtr gtkwidget, IntPtr utf8string, IntPtr userdata) |
|
|
|
{ |
|
|
|
Input(new RawTextInputEventArgs(Gtk3Platform.Keyboard, _lastKbdEvent, Utf8Buffer.StringFromPtr(utf8string))); |
|
|
|
|