diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-05 13:32:16 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-05 13:32:16 (GMT) |
commit | adb81ce974986627e7f381421adb9452a34a5e47 (patch) | |
tree | 3272bb94f987d5a8ac6d916334daebd85f7693f1 /generic/tkUtil.c | |
parent | 3682b4165698b83f1604f1ce29866219b5497bd1 (diff) | |
download | tk-adb81ce974986627e7f381421adb9452a34a5e47.zip tk-adb81ce974986627e7f381421adb9452a34a5e47.tar.gz tk-adb81ce974986627e7f381421adb9452a34a5e47.tar.bz2 |
Protect better against possible confusion between XGenericEvent's and (Tcl-specific) XVirtualEvent's: If "name" == NULL, assume it's a XGenericEvent, so don't crash on that just ignore.
Also don't use "virtual" as variable name.
Diffstat (limited to 'generic/tkUtil.c')
-rw-r--r-- | generic/tkUtil.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/generic/tkUtil.c b/generic/tkUtil.c index 89f68be..85cb06d 100644 --- a/generic/tkUtil.c +++ b/generic/tkUtil.c @@ -1176,7 +1176,7 @@ TkSendVirtualEvent( const char *eventName, Tcl_Obj *detail) { - union {XEvent general; XVirtualEvent virtual;} event; + union {XEvent general; XVirtualEvent virt;} event; memset(&event, 0, sizeof(event)); event.general.xany.type = VirtualEvent; @@ -1184,10 +1184,8 @@ TkSendVirtualEvent( event.general.xany.send_event = False; event.general.xany.window = Tk_WindowId(target); event.general.xany.display = Tk_Display(target); - event.virtual.name = Tk_GetUid(eventName); - if (detail != NULL) { - event.virtual.user_data = detail; - } + event.virt.name = Tk_GetUid(eventName); + event.virt.user_data = detail; Tk_QueueWindowEvent(&event.general, TCL_QUEUE_TAIL); } |