code beautification: make the caret code correct (with dom)
platform maintainers need to modify gr_*Graphics.

I've attached the diff for gr_UnixGraphics.

Checking in src/af/gr/Makefile;
/cvsroot/abi/src/af/gr/Makefile,v  <--  Makefile
new revision: 1.19; previous revision: 1.18
done
Checking in src/af/gr/beos/gr_BeOSGraphics.cpp;
/cvsroot/abi/src/af/gr/beos/gr_BeOSGraphics.cpp,v  <-- 
gr_BeOSGraphics.cpp
new revision: 1.40; previous revision: 1.39
done
Checking in src/af/gr/beos/gr_BeOSGraphics.h;
/cvsroot/abi/src/af/gr/beos/gr_BeOSGraphics.h,v  <--  gr_BeOSGraphics.h
new revision: 1.26; previous revision: 1.25
done
Checking in src/af/gr/mac/gr_MacGraphics.cpp;
/cvsroot/abi/src/af/gr/mac/gr_MacGraphics.cpp,v  <--  gr_MacGraphics.cpp
new revision: 1.21; previous revision: 1.20
done
Checking in src/af/gr/mac/gr_MacGraphics.h;
/cvsroot/abi/src/af/gr/mac/gr_MacGraphics.h,v  <--  gr_MacGraphics.h
new revision: 1.21; previous revision: 1.20
done
Checking in src/af/gr/mac/gr_MacQDGraphics.cpp;
/cvsroot/abi/src/af/gr/mac/gr_MacQDGraphics.cpp,v  <-- 
gr_MacQDGraphics.cpp
new revision: 1.8; previous revision: 1.7
done
Checking in src/af/gr/mac/gr_MacQDGraphics.h;
/cvsroot/abi/src/af/gr/mac/gr_MacQDGraphics.h,v  <--  gr_MacQDGraphics.h
new revision: 1.6; previous revision: 1.5
done
Checking in src/af/gr/qnx/gr_QNXGraphics.cpp;
/cvsroot/abi/src/af/gr/qnx/gr_QNXGraphics.cpp,v  <--  gr_QNXGraphics.cpp
new revision: 1.69; previous revision: 1.68
done
Checking in src/af/gr/qnx/gr_QNXGraphics.h;
/cvsroot/abi/src/af/gr/qnx/gr_QNXGraphics.h,v  <--  gr_QNXGraphics.h
new revision: 1.23; previous revision: 1.22
done
Checking in src/af/gr/unix/gr_UnixGraphics.cpp;
/cvsroot/abi/src/af/gr/unix/gr_UnixGraphics.cpp,v  <-- 
gr_UnixGraphics.cpp
new revision: 1.152; previous revision: 1.151
done
Checking in src/af/gr/unix/gr_UnixGraphics.h;
/cvsroot/abi/src/af/gr/unix/gr_UnixGraphics.h,v  <--  gr_UnixGraphics.h
new revision: 1.46; previous revision: 1.45
done
Checking in src/af/gr/win/gr_Win32Graphics.cpp;
/cvsroot/abi/src/af/gr/win/gr_Win32Graphics.cpp,v  <-- 
gr_Win32Graphics.cpp
new revision: 1.102; previous revision: 1.101
done
Checking in src/af/gr/win/gr_Win32Graphics.h;
/cvsroot/abi/src/af/gr/win/gr_Win32Graphics.h,v  <--  gr_Win32Graphics.h
new revision: 1.52; previous revision: 1.51
done
Checking in src/af/gr/xp/GNUmakefile.am;
/cvsroot/abi/src/af/gr/xp/GNUmakefile.am,v  <--  GNUmakefile.am
new revision: 1.5; previous revision: 1.4
done
Checking in src/af/gr/xp/Makefile;
/cvsroot/abi/src/af/gr/xp/Makefile,v  <--  Makefile
new revision: 1.13; previous revision: 1.12
done
Checking in src/af/gr/xp/gr_Graphics.cpp;
/cvsroot/abi/src/af/gr/xp/gr_Graphics.cpp,v  <--  gr_Graphics.cpp
new revision: 1.63; previous revision: 1.62
done
Checking in src/af/gr/xp/gr_Graphics.h;
/cvsroot/abi/src/af/gr/xp/gr_Graphics.h,v  <--  gr_Graphics.h
new revision: 1.69; previous revision: 1.68
done
Checking in src/af/xap/unix/xap_UnixNullGraphics.cpp;
/cvsroot/abi/src/af/xap/unix/xap_UnixNullGraphics.cpp,v  <-- 
xap_UnixNullGraphics.cpp
new revision: 1.8; previous revision: 1.7
done
Checking in src/af/xap/unix/xap_UnixNullGraphics.h;
/cvsroot/abi/src/af/xap/unix/xap_UnixNullGraphics.h,v  <-- 
xap_UnixNullGraphics.h
new revision: 1.8; previous revision: 1.7
done
Checking in src/af/xap/unix/xap_UnixPSGraphics.cpp;
/cvsroot/abi/src/af/xap/unix/xap_UnixPSGraphics.cpp,v  <-- 
xap_UnixPSGraphics.cpp
new revision: 1.97; previous revision: 1.96
done
Checking in src/af/xap/unix/xap_UnixPSGraphics.h;
/cvsroot/abi/src/af/xap/unix/xap_UnixPSGraphics.h,v  <-- 
xap_UnixPSGraphics.h
new revision: 1.35; previous revision: 1.34
done
Checking in src/af/xap/unix/gnome/xap_UnixGnomePrintGraphics.cpp;
/cvsroot/abi/src/af/xap/unix/gnome/xap_UnixGnomePrintGraphics.cpp,v  <-- 
xap_UnixGnomePrintGraphics.cpp
new revision: 1.51; previous revision: 1.50
done
Checking in src/af/xap/unix/gnome/xap_UnixGnomePrintGraphics.h;
/cvsroot/abi/src/af/xap/unix/gnome/xap_UnixGnomePrintGraphics.h,v  <-- 
xap_UnixGnomePrintGraphics.h
new revision: 1.18; previous revision: 1.17
done
Checking in src/bindings/perl/AbiWord.cpp;
/cvsroot/abi/src/bindings/perl/AbiWord.cpp,v  <--  AbiWord.cpp
new revision: 1.5; previous revision: 1.4
done
Checking in src/text/fmt/xp/GNUmakefile.am;
/cvsroot/abi/src/text/fmt/xp/GNUmakefile.am,v  <--  GNUmakefile.am
new revision: 1.16; previous revision: 1.15
done
Checking in src/text/fmt/xp/fl_BlockLayout.cpp;
/cvsroot/abi/src/text/fmt/xp/fl_BlockLayout.cpp,v  <-- 
fl_BlockLayout.cpp
new revision: 1.440; previous revision: 1.439
done
Checking in src/text/fmt/xp/fl_BlockLayout.h;
/cvsroot/abi/src/text/fmt/xp/fl_BlockLayout.h,v  <--  fl_BlockLayout.h
new revision: 1.157; previous revision: 1.156
done
Checking in src/text/fmt/xp/fl_DocLayout.cpp;
/cvsroot/abi/src/text/fmt/xp/fl_DocLayout.cpp,v  <--  fl_DocLayout.cpp
new revision: 1.184; previous revision: 1.183
done
Checking in src/text/fmt/xp/fl_DocListener.cpp;
/cvsroot/abi/src/text/fmt/xp/fl_DocListener.cpp,v  <-- 
fl_DocListener.cpp
new revision: 1.143; previous revision: 1.142
done
Checking in src/text/fmt/xp/fl_SectionLayout.cpp;
/cvsroot/abi/src/text/fmt/xp/fl_SectionLayout.cpp,v  <-- 
fl_SectionLayout.cpp
new revision: 1.163; previous revision: 1.162
done
Checking in src/text/fmt/xp/fp_TextRun.cpp;
/cvsroot/abi/src/text/fmt/xp/fp_TextRun.cpp,v  <--  fp_TextRun.cpp
new revision: 1.186; previous revision: 1.185
done
Checking in src/text/fmt/xp/fv_View.cpp;
/cvsroot/abi/src/text/fmt/xp/fv_View.cpp,v  <--  fv_View.cpp
new revision: 1.701; previous revision: 1.700
done
Checking in src/text/fmt/xp/fv_View.h;
/cvsroot/abi/src/text/fmt/xp/fv_View.h,v  <--  fv_View.h
new revision: 1.246; previous revision: 1.245
done
Checking in src/text/fmt/xp/fv_View_cmd.cpp;
/cvsroot/abi/src/text/fmt/xp/fv_View_cmd.cpp,v  <--  fv_View_cmd.cpp
new revision: 1.24; previous revision: 1.23
done
Checking in src/text/fmt/xp/fv_View_protected.cpp;
/cvsroot/abi/src/text/fmt/xp/fv_View_protected.cpp,v  <-- 
fv_View_protected.cppnew revision: 1.25; previous revision: 1.24
done
Checking in src/wp/ap/xp/ap_EditMethods.cpp;
/cvsroot/abi/src/wp/ap/xp/ap_EditMethods.cpp,v  <--  ap_EditMethods.cpp
new revision: 1.515; previous revision: 1.514
done
Checking in src/wp/ap/xp/ap_LeftRuler.cpp;
/cvsroot/abi/src/wp/ap/xp/ap_LeftRuler.cpp,v  <--  ap_LeftRuler.cpp
new revision: 1.59; previous revision: 1.58
done

Index: src/af/gr/unix/gr_UnixGraphics.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/gr/unix/gr_UnixGraphics.cpp,v
retrieving revision 1.151
diff -u -r1.151 gr_UnixGraphics.cpp
--- src/af/gr/unix/gr_UnixGraphics.cpp  30 Aug 2002 15:58:47 -0000      1.151
+++ src/af/gr/unix/gr_UnixGraphics.cpp  1 Sep 2002 19:39:41 -0000
@@ -369,6 +369,8 @@
        UT_sint32 curWidth;
 
        const UT_UCSChar *pC;
+       GR_CaretDisabler caretDisabler(getCaret());
+
        for(pC=pChars+iCharOffset, x=xoff; pC<pChars+iCharOffset+iLength; ++pC)
        {
                UT_UCSChar actual = remapGlyph(*pC,false);
@@ -741,6 +743,11 @@
        return 96;
 }
 
+void GR_UnixGraphics::getColor(UT_RGBColor& clr)
+{
+       clr = m_curColor;
+}
+
 void GR_UnixGraphics::setColor(const UT_RGBColor& clr)
 {
        UT_ASSERT(m_pGC);
@@ -750,6 +757,7 @@
        c.blue = clr.m_blu << 8;
        c.green = clr.m_grn << 8;
 
+       m_curColor = clr;
        _setColor(c);
 }
 
@@ -989,7 +997,6 @@
 
 UT_uint32 GR_UnixGraphics::getFontAscent()
 {
-
        return getFontAscent(m_pFont);
 }
 
@@ -1040,6 +1047,7 @@
 void GR_UnixGraphics::drawLine(UT_sint32 x1, UT_sint32 y1,
                                                           UT_sint32 x2, UT_sint32 y2)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        // TODO set the line width according to m_iLineWidth
        gdk_draw_line(m_pWin, m_pGC, x1, y1, x2, y2);
 }
@@ -1065,11 +1073,13 @@
 void GR_UnixGraphics::xorLine(UT_sint32 x1, UT_sint32 y1, UT_sint32 x2,
                            UT_sint32 y2)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        gdk_draw_line(m_pWin, m_pXORGC, x1, y1, x2, y2);
 }
 
 void GR_UnixGraphics::polyLine(UT_Point * pts, UT_uint32 nPoints)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
   // see bug #303 for what this is about
 #if 1
        GdkPoint * points = (GdkPoint *)calloc(nPoints, sizeof(GdkPoint));
@@ -1098,8 +1108,8 @@
 
 void GR_UnixGraphics::invertRect(const UT_Rect* pRect)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        UT_ASSERT(pRect);
-
        gdk_draw_rectangle(m_pWin, m_pXORGC, 1, pRect->left, pRect->top,
                                           pRect->width, pRect->height);
 }
@@ -1160,6 +1170,7 @@
 void GR_UnixGraphics::fillRect(const UT_RGBColor& c, UT_sint32 x, UT_sint32 y,
                                                           UT_sint32 w, UT_sint32 h)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        // save away the current color, and restore it after we fill the rect
        GdkGCValues gcValues;
        GdkColor oColor;
@@ -1181,13 +1192,17 @@
 
        gdk_gc_set_foreground(m_pGC, &nColor);
 
-       gdk_draw_rectangle(m_pWin, m_pGC, 1, x, y, w, h);
+// This seems to clear up some problems, but it may not be right.
+//     gdk_draw_rectangle(m_pWin, m_pGC, 1, x, y, w+1, h+1);
+       gdk_draw_rectangle(m_pWin, m_pGC, 1, x, y, w, h);
 
        gdk_gc_set_foreground(m_pGC, &oColor);
 }
 
 void GR_UnixGraphics::scroll(UT_sint32 dx, UT_sint32 dy)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
+
        UT_sint32 winWidth, winHeight;
        gdk_drawable_get_size ( GDK_DRAWABLE(m_pWin), &winWidth, &winHeight ) ;
        UT_Rect exposeArea;
@@ -1287,6 +1302,7 @@
                                                  UT_sint32 x_src, UT_sint32 y_src,
                                                  UT_sint32 width, UT_sint32 height)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        gdk_window_copy_area(m_pWin, m_pGC, x_dest, y_dest,
                                                 m_pWin, x_src, y_src, width, height);
 }
@@ -1294,6 +1310,7 @@
 void GR_UnixGraphics::clearArea(UT_sint32 x, UT_sint32 y,
                                                         UT_sint32 width, UT_sint32 
height)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
   //   UT_DEBUGMSG(("ClearArea: %d %d %d %d\n", x, y, width, height));
        if (width > 0)
        {
@@ -1344,7 +1361,6 @@
 {
        GR_Image* pImg = NULL;
 
-
        pImg = new GR_UnixImage(pszName,false);
        pImg->convertFromBuffer(pBB, iDisplayWidth, iDisplayHeight);
        return pImg;
@@ -1358,6 +1374,7 @@
 
 void GR_UnixGraphics::drawImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        UT_ASSERT(pImg);
 
        GR_UnixImage * pUnixImage = static_cast<GR_UnixImage *>(pImg);
@@ -1525,6 +1542,7 @@
 
 void GR_UnixGraphics::fillRect(GR_Color3D c, UT_sint32 x, UT_sint32 y, UT_sint32 w, 
UT_sint32 h)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        UT_ASSERT(c < COUNT_3D_COLORS);
        gdk_gc_set_foreground(m_pGC, &m_3dColors[c]);
        gdk_draw_rectangle(m_pWin, m_pGC, 1, x, y, w, h);
@@ -1538,5 +1556,6 @@
 
 void GR_UnixGraphics::polygon(UT_RGBColor& c,UT_Point *pts,UT_uint32 nPoints)
 {
+       GR_CaretDisabler caretDisabler(getCaret());
        // save away the current color, and restore it after we draw the polygon       
 GdkGCValues gcValues;
        GdkColor oColor;

Reply via email to