From ebf002b8d5a824939fc9d91d63161224694e9238 Mon Sep 17 00:00:00 2001 From: kojima Date: Fri, 9 Jun 2000 02:15:38 +0000 Subject: [PATCH] fixed redraw problem when frame title changes --- WINGs/wframe.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/WINGs/wframe.c b/WINGs/wframe.c index d229b384..0f95ded6 100644 --- a/WINGs/wframe.c +++ b/WINGs/wframe.c @@ -24,6 +24,7 @@ typedef struct W_Frame { static void destroyFrame(Frame *fPtr); static void paintFrame(Frame *fPtr); +static void repaintFrame(Frame *fPtr); @@ -31,9 +32,9 @@ void WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position) { fPtr->flags.titlePosition = position; - - if (fPtr->view->flags.realized) { - paintFrame(fPtr); + + if (fPtr->view->flags.realized) { + repaintFrame(fPtr); } } @@ -44,7 +45,7 @@ WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief) fPtr->flags.relief = relief; if (fPtr->view->flags.realized) { - paintFrame(fPtr); + repaintFrame(fPtr); } } @@ -60,11 +61,22 @@ WMSetFrameTitle(WMFrame *fPtr, char *title) fPtr->caption = NULL; if (fPtr->view->flags.realized) { - paintFrame(fPtr); + repaintFrame(fPtr); } } +static void +repaintFrame(Frame *fPtr) +{ + W_View *view = fPtr->view; + W_Screen *scrPtr = view->screen; + + XClearWindow(scrPtr->display, view->window); + paintFrame(fPtr); +} + + static void paintFrame(Frame *fPtr) { @@ -137,9 +149,6 @@ paintFrame(Frame *fPtr) drawTitle = False; } -/* XClearArea(scrPtr->display, view->window, x, y, width, height, False); - */ - { XRectangle rect; Region region, tmp;