1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-01-28 02:45:47 +01:00

fixed redraw problem when frame title changes

This commit is contained in:
kojima
2000-06-09 02:15:38 +00:00
parent 983e154118
commit ebf002b8d5

View File

@@ -24,6 +24,7 @@ typedef struct W_Frame {
static void destroyFrame(Frame *fPtr); static void destroyFrame(Frame *fPtr);
static void paintFrame(Frame *fPtr); static void paintFrame(Frame *fPtr);
static void repaintFrame(Frame *fPtr);
@@ -32,8 +33,8 @@ WMSetFrameTitlePosition(WMFrame *fPtr, WMTitlePosition position)
{ {
fPtr->flags.titlePosition = position; fPtr->flags.titlePosition = position;
if (fPtr->view->flags.realized) { if (fPtr->view->flags.realized) {
paintFrame(fPtr); repaintFrame(fPtr);
} }
} }
@@ -44,7 +45,7 @@ WMSetFrameRelief(WMFrame *fPtr, WMReliefType relief)
fPtr->flags.relief = relief; fPtr->flags.relief = relief;
if (fPtr->view->flags.realized) { if (fPtr->view->flags.realized) {
paintFrame(fPtr); repaintFrame(fPtr);
} }
} }
@@ -60,11 +61,22 @@ WMSetFrameTitle(WMFrame *fPtr, char *title)
fPtr->caption = NULL; fPtr->caption = NULL;
if (fPtr->view->flags.realized) { 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 static void
paintFrame(Frame *fPtr) paintFrame(Frame *fPtr)
{ {
@@ -137,9 +149,6 @@ paintFrame(Frame *fPtr)
drawTitle = False; drawTitle = False;
} }
/* XClearArea(scrPtr->display, view->window, x, y, width, height, False);
*/
{ {
XRectangle rect; XRectangle rect;
Region region, tmp; Region region, tmp;