less flickering for x11

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@322 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
Nishi 2025-10-14 10:34:05 +00:00
commit 27bf409a88
5 changed files with 27 additions and 11 deletions

View file

@ -276,6 +276,11 @@ void MwLLFreeColor(MwLLColor color) {
free(color);
}
void MwLLSetBackground(MwLL handle, MwLLColor color) {
(void)handle;
(void)color;
}
void MwLLGetXYWH(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) {
RECT rc;

View file

@ -174,6 +174,10 @@ void MwLLFreeColor(MwLLColor color) {
free(color);
}
void MwLLSetBackground(MwLL handle, MwLLColor color) {
XSetWindowBackground(handle->display, handle->window, color->pixel);
}
int MwLLPending(MwLL handle) {
XEvent ev;
if(XCheckTypedWindowEvent(handle->display, handle->window, ClientMessage, &ev) || XCheckWindowEvent(handle->display, handle->window, mask, &ev)) {

View file

@ -275,6 +275,11 @@ void MwSetText(MwWidget handle, const char* key, const char* value) {
shput(handle->text, key, v);
}
if(handle->prop_event) MwDispatch3(handle, prop_change, key);
if(strcmp(key, MwNbackground) == 0) {
MwLLColor c = MwParseColor(handle, value);
MwLLSetBackground(handle->lowlevel, c);
MwLLFreeColor(c);
}
if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0) {
MwForceRender(handle);
}