diff options
author | fvogel <fvogelnew1@free.fr> | 2016-04-19 19:07:57 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2016-04-19 19:07:57 (GMT) |
commit | 690a06f8f003fec1862a44256c94d1c635ef1035 (patch) | |
tree | 5b07c74b442a6ea7bf5cc5e78ceb2ae5914f9092 | |
parent | f7500888d0c32dbed131028dd864bae0255e5464 (diff) | |
download | tk-tip_446_experimental.zip tk-tip_446_experimental.tar.gz tk-tip_446_experimental.tar.bz2 |
Use TkHandleEventGenerate rather than directly fiddling with the event structure field for sending <<Modified>>, <<WidgetViewSync>> and <<ListboxSelect>> virtual events.tip_446_experimental
-rw-r--r-- | generic/tkListbox.c | 15 | ||||
-rw-r--r-- | generic/tkText.c | 16 | ||||
-rw-r--r-- | generic/tkTextDisp.c | 18 |
3 files changed, 16 insertions, 33 deletions
diff --git a/generic/tkListbox.c b/generic/tkListbox.c index c7effdd..14c4d0b 100644 --- a/generic/tkListbox.c +++ b/generic/tkListbox.c @@ -3223,16 +3223,11 @@ static void GenerateListboxSelectEvent( Listbox *listPtr) /* Information about widget. */ { - union {XEvent general; XVirtualEvent virtual;} event; - - memset(&event, 0, sizeof(event)); - event.general.xany.type = VirtualEvent; - event.general.xany.serial = NextRequest(Tk_Display(listPtr->tkwin)); - event.general.xany.send_event = False; - event.general.xany.window = Tk_WindowId(listPtr->tkwin); - event.general.xany.display = Tk_Display(listPtr->tkwin); - event.virtual.name = Tk_GetUid("ListboxSelect"); - Tk_HandleEvent(&event.general); + Tcl_Obj *params[2]; + + params[0] = Tcl_NewStringObj(Tk_PathName(listPtr->tkwin), -1); + params[1] = Tcl_NewStringObj("<<ListboxSelect>>", -1); + TkHandleEventGenerate(listPtr->interp, listPtr->tkwin, 2, params); } /* diff --git a/generic/tkText.c b/generic/tkText.c index 3114835..dc50b92 100644 --- a/generic/tkText.c +++ b/generic/tkText.c @@ -5389,21 +5389,13 @@ static void GenerateModifiedEvent( TkText *textPtr) /* Information about text widget. */ { - union { - XEvent general; - XVirtualEvent virtual; - } event; + Tcl_Obj *params[2]; Tk_MakeWindowExist(textPtr->tkwin); - memset(&event, 0, sizeof(event)); - event.general.xany.type = VirtualEvent; - event.general.xany.serial = NextRequest(Tk_Display(textPtr->tkwin)); - event.general.xany.send_event = False; - event.general.xany.window = Tk_WindowId(textPtr->tkwin); - event.general.xany.display = Tk_Display(textPtr->tkwin); - event.virtual.name = Tk_GetUid("Modified"); - Tk_HandleEvent(&event.general); + params[0] = Tcl_NewStringObj(Tk_PathName(textPtr->tkwin), -1); + params[1] = Tcl_NewStringObj("<<Modified>>", -1); + TkHandleEventGenerate(textPtr->interp, textPtr->tkwin, 2, params); } /* diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index 0849307..c910619 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -3122,17 +3122,13 @@ GenerateWidgetViewSyncEvent( TkText *textPtr, /* Information about text widget. */ Bool InSync) /* True if in sync, false otherwise */ { - union {XEvent general; XVirtualEvent virtual;} event; - - memset(&event, 0, sizeof(event)); - event.general.xany.type = VirtualEvent; - event.general.xany.serial = NextRequest(Tk_Display(textPtr->tkwin)); - event.general.xany.send_event = False; - event.general.xany.window = Tk_WindowId(textPtr->tkwin); - event.general.xany.display = Tk_Display(textPtr->tkwin); - event.virtual.name = Tk_GetUid("WidgetViewSync"); - event.virtual.user_data = Tcl_NewBooleanObj(InSync); - Tk_HandleEvent(&event.general); + Tcl_Obj *params[4]; + + params[0] = Tcl_NewStringObj(Tk_PathName(textPtr->tkwin), -1); + params[1] = Tcl_NewStringObj("<<WidgetViewSync>>", -1); + params[2] = Tcl_NewStringObj("-data", -1); + params[3] = Tcl_NewBooleanObj(InSync); + TkHandleEventGenerate(textPtr->interp, textPtr->tkwin, 4, params); } /* |