aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2014-09-29 12:23:27 +0000
committerDimitri Sokolyuk <demon@dim13.org>2014-09-29 12:23:27 +0000
commitaa11dfe12708fb6a797b345573fd1b8cc71c3233 (patch)
tree4c82af4ca0b66e45682717511a6fdc3e2910b6e4
parente93a94a49393d8ef4c6fb856a4c0e9640f03c5d3 (diff)
remove flicker
-rw-r--r--Display.c17
-rw-r--r--Sgraph.c22
2 files changed, 16 insertions, 23 deletions
diff --git a/Display.c b/Display.c
index c8d866b..1e73179 100644
--- a/Display.c
+++ b/Display.c
@@ -57,7 +57,6 @@ DisplayClassRec displayClassRec = {
.visible_interest = False,
.destroy = NULL,
.resize = Resize,
- //.expose = XtInheritExpose,
.expose = Redisplay,
.set_values = SetValues,
.set_values_hook = NULL,
@@ -72,7 +71,7 @@ DisplayClassRec displayClassRec = {
.extension = NULL,
},
.composite_class = {
- .geometry_manager = GeometryManager,
+ .geometry_manager = XtInheritGeometryManager,
.change_managed = ChangeManaged,
.insert_child = XtInheritInsertChild,
.delete_child = XtInheritDeleteChild,
@@ -180,5 +179,17 @@ Redisplay(Widget w, XEvent *event, Region region)
static Boolean
SetValues(Widget old, Widget req, Widget new, ArgList args, Cardinal *n)
{
- return True;
+ XExposeEvent xeev;
+
+ xeev.type = Expose;
+ xeev.display = XtDisplay(new);
+ xeev.window = XtWindow(new);
+ xeev.x = 0;
+ xeev.y = 0;
+ xeev.width = new->core.width;
+ xeev.height = new->core.height;
+
+ XtClass(new)->core_class.expose(new, (XEvent *)&xeev, NULL);
+
+ return False;
}
diff --git a/Sgraph.c b/Sgraph.c
index d61ce8f..0db2a78 100644
--- a/Sgraph.c
+++ b/Sgraph.c
@@ -93,7 +93,7 @@ SgraphClassRec sgraphClassRec = {
NULL, /* destroy */
Resize, /* resize */
Redisplay, /* expose */
- SetValues, /* set_values */
+ NULL, /* set_values */
NULL, /* set_values_hook */
XtInheritSetValuesAlmost, /* set_values_almost */
NULL, /* get_values_hook */
@@ -171,10 +171,9 @@ Realize(Widget w, XtValueMask *mask, XSetWindowAttributes *attr)
if (XtIsRealized(w))
return;
- XtCreateWindow(w, InputOutput, CopyFromParent, *mask, attr);
+ XtSuperclass(w)->core_class.realize(w, mask, attr);
sw->sgraph.backBuf = XdbeAllocateBackBufferName(XtDisplay(w),
XtWindow(w), XdbeBackground);
- Resize(w);
}
static void
@@ -228,20 +227,3 @@ Redisplay(Widget w, XEvent *event, Region r)
XdbeSwapBuffers(XtDisplay(sw), &swap, 1);
}
-
-static Boolean
-SetValues(Widget old, Widget reference, Widget new, ArgList args, Cardinal *num_args)
-{
- XExposeEvent xeev;
-
- xeev.type = Expose;
- xeev.display = XtDisplay(new);
- xeev.window = XtWindow(new);
- xeev.x = 0;
- xeev.y = 0;
- xeev.width = new->core.width;
- xeev.height = new->core.height;
- Redisplay(new, (XEvent *)&xeev, NULL);
-
- return False;
-}