[tekui-devel] tekui: Windows Display: dirty flag was not set in all drawing co...
Timm S. Mueller
tmueller at schulze-mueller.de
Tue Mar 17 12:23:46 CET 2009
details: http://hg.teklib.org/tekui/rev/ec5bdbe5570f
changeset: 63:ec5bdbe5570f
user: Timm S. Mueller <tmueller at schulze-mueller.de>
date: Tue Mar 17 12:23:22 2009 +0100
description:
Windows Display: dirty flag was not set in all drawing commands, corrected;
X11 Display: Minor cleanup
diffs (truncated from 137 to 100 lines):
diff -r 1664a6dcf274 -r ec5bdbe5570f src/display_windows/display_win_api.c
--- a/src/display_windows/display_win_api.c Tue Mar 17 11:36:06 2009 +0100
+++ b/src/display_windows/display_win_api.c Tue Mar 17 12:23:22 2009 +0100
@@ -457,6 +457,7 @@
Polygon(win->fbv_HDC, points, 3);
}
}
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
@@ -510,6 +511,7 @@
Polygon(win->fbv_HDC, points, 3);
}
}
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
@@ -552,6 +554,7 @@
else
ScrollDC(win->fbv_HDC, dx, dy, &r, &r, NULL, NULL);
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
@@ -622,6 +625,7 @@
req->tvr_Op.DrawBuffer.Buf,
(const void *) bmi,
DIB_RGB_COLORS);
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
@@ -850,14 +854,16 @@
LOCAL void
fb_drawtags(WINDISPLAY *mod, struct TVRequest *req)
{
+ WINWINDOW *win = req->tvr_Op.DrawTags.Window;
struct THook hook;
struct drawdata data;
- data.v = req->tvr_Op.DrawTags.Window;
+ data.v = win;
data.mod = mod;
data.fgpen = TNULL;
data.bgpen = TNULL;
TInitHook(&hook, drawtagfunc, &data);
TForEachTag(req->tvr_Op.DrawTags.Tags, &hook);
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
@@ -886,6 +892,7 @@
SetBkMode(win->fbv_HDC, TRANSPARENT);
TextOut(win->fbv_HDC, x, y, latin, len);
}
+ win->fbv_Dirty = TTRUE;
}
/*****************************************************************************/
diff -r 1664a6dcf274 -r ec5bdbe5570f src/display_x11/display_x11_inst.c
--- a/src/display_x11/display_x11_inst.c Tue Mar 17 11:36:06 2009 +0100
+++ b/src/display_x11/display_x11_inst.c Tue Mar 17 12:23:22 2009 +0100
@@ -12,8 +12,6 @@
static void x11_processevent(X11DISPLAY *mod);
static TBOOL x11_processvisualevent(X11DISPLAY *mod, X11WINDOW *v,
TAPTR msgstate, XEvent *ev);
-static TBOOL getusermsg(X11DISPLAY *mod, TIMSG **msgptr, TUINT type,
- TSIZE size);
#if defined(ENABLE_STDIN)
/*****************************************************************************/
@@ -140,6 +138,27 @@
{
r->ReadBytes += nbytes;
}
+
+static TBOOL getusermsg(X11DISPLAY *mod, TIMSG **msgptr, TUINT type, TSIZE size)
+{
+ TAPTR TExecBase = TGetExecBase(mod);
+ TIMSG *msg = TAllocMsg(sizeof(TIMSG) + size);
+ if (msg)
+ {
+ TFillMem(msg, sizeof(TIMSG), 0);
+ msg->timsg_ExtraSize = size;
+ msg->timsg_Type = type;
+ msg->timsg_Qualifier = mod->x11_KeyQual;
+ msg->timsg_MouseX = mod->x11_MouseX;
+ msg->timsg_MouseY = mod->x11_MouseY;
+ TGetSystemTime(&msg->timsg_TimeStamp);
+ *msgptr = msg;
+ return TTRUE;
+ }
+ *msgptr = TNULL;
+ return TFALSE;
+}
+
#endif
More information about the tekui-devel
mailing list