Fix XFT redraw of text. Still needs slight work for the shadow in Basemenu
authorScott Moynes <smoynes@nexus.carleton.ca>
Thu, 17 Oct 2002 00:52:03 +0000 (00:52 +0000)
committerScott Moynes <smoynes@nexus.carleton.ca>
Thu, 17 Oct 2002 00:52:03 +0000 (00:52 +0000)
src/Basemenu.cc
src/Toolbar.cc

index 322576c..25a941c 100644 (file)
@@ -447,6 +447,7 @@ void Basemenu::redrawTitle(void) {
     break;
   }
 
+  XClearWindow(display, menu.title);
   style->t_font->drawString(menu.title, dx, menu.bevel_w,
                             style->t_text, text);
 }
@@ -610,6 +611,10 @@ void Basemenu::drawItem(int index, bool highlight, bool clear,
       dooppsel = False;
   }
 
+  if (dotext)
+    XClearArea(display, menu.frame, text_x, text_y, text_w, text_h,
+               False);
+
   if (dohilite && highlight && (menu.hilite_pixmap != ParentRelative)) {
     if (menu.hilite_pixmap)
       XCopyArea(display, menu.hilite_pixmap, menu.frame,
index d2e2f15..587d3fd 100644 (file)
@@ -581,6 +581,11 @@ void Toolbar::checkClock(bool redraw, bool date) {
 
     int pos = frame.bevel_w * 2; // this is modified by doJustify()
     style->doJustify(t, pos, frame.clock_w, frame.bevel_w * 4);
+
+#ifdef    XFT
+    XClearWindow(display, frame.clock);
+#endif // XFT
+
     style->font->drawString(frame.clock, pos, 1, style->c_text, t);
   }
 }
@@ -593,6 +598,10 @@ void Toolbar::redrawWindowLabel(bool redraw) {
     return;
   }
 
+#ifdef    XFT
+  redraw = true;
+#endif // XFT
+
   if (redraw)
     XClearWindow(display, frame.window_label);
 
@@ -610,6 +619,10 @@ void Toolbar::redrawWindowLabel(bool redraw) {
 void Toolbar::redrawWorkspaceLabel(bool redraw) {
   const string& name = screen->getCurrentWorkspace()->getName();
 
+#ifdef    XFT
+  redraw = true;
+#endif // XFT
+
   if (redraw)
     XClearWindow(display, frame.workspace_label);