Attachment "style_configure_._-insertofftime_Patch1.diff" to
ticket [3531366f]
added by
fvogel
2023-06-08 20:55:12.
Index: generic/ttk/ttkBlink.c
==================================================================
--- generic/ttk/ttkBlink.c
+++ generic/ttk/ttkBlink.c
@@ -149,10 +149,17 @@
if (RealFocusEvent(eventPtr->xfocus.detail))
LoseCursor(cm, corePtr);
break;
}
}
+
+void TtkSetBlinkOffTime(WidgetCore* corePtr, int offTime)
+{
+ CursorManager* cm = GetCursorManager(corePtr->interp);
+
+ cm->offTime = offTime;
+}
/*
* TtkBlinkCursor (main routine) --
* Arrange to blink the cursor on and off whenever the
* widget has focus.
Index: generic/ttk/ttkWidget.c
==================================================================
--- generic/ttk/ttkWidget.c
+++ generic/ttk/ttkWidget.c
@@ -4,10 +4,11 @@
* Core widget utilities.
*/
#include "tkInt.h"
#include "ttkTheme.h"
+#include "ttkThemeInt.h"
#include "ttkWidget.h"
/*------------------------------------------------------------------------
* +++ Internal helper routines.
*/
@@ -122,11 +123,25 @@
* recomputes geometry.
*/
static void WidgetWorldChanged(ClientData clientData)
{
WidgetCore *corePtr = clientData;
+ Ttk_Theme theme;
+ Ttk_Style style = NULL;
+ Tcl_Obj* result;
+ int offTime;
+
SizeChanged(corePtr);
+
+ theme = Ttk_GetCurrentTheme(corePtr->interp);
+ style = Ttk_GetStyle(theme, ".");
+ result = Ttk_StyleDefault(style, "-insertofftime");
+ if (result) {
+ Tcl_GetIntFromObj(corePtr->interp, result, &offTime);
+ TtkSetBlinkOffTime(corePtr, offTime);
+ }
+
TtkRedisplayWidget(corePtr);
}
/* TtkResizeWidget --
* Recompute widget size, schedule geometry propagation and redisplay.
Index: generic/ttk/ttkWidget.h
==================================================================
--- generic/ttk/ttkWidget.h
+++ generic/ttk/ttkWidget.h
@@ -144,10 +144,12 @@
MODULE_SCOPE void TtkRedisplayWidget(WidgetCore *);
MODULE_SCOPE void TtkResizeWidget(WidgetCore *);
MODULE_SCOPE void TtkTrackElementState(WidgetCore *);
+
+MODULE_SCOPE void TtkSetBlinkOffTime(WidgetCore* corePtr, int offTime);
MODULE_SCOPE void TtkBlinkCursor(WidgetCore *);
/*
* -state option values (compatibility)
*/