#include "support/filetools.h" // LibFileSearch
#include "support/os.h"
+#include "support/convert.h"
#include "graphics/GraphicsImage.h"
#include "graphics/GraphicsLoader.h"
setMinimumSize(100, 70);
viewport()->setAutoFillBackground(false);
- viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
+ // We don't need double-buffering nor SystemBackground on
+ // the viewport because we have our own backing pixmap.
+ viewport()->setAttribute(Qt::WA_NoSystemBackground);
+
setFocusPolicy(Qt::WheelFocus);
viewport()->setCursor(Qt::IBeamCursor);
void GuiWorkArea::focusInEvent(QFocusEvent * /*event*/)
{
// No need to do anything if we didn't change views...
- if (theApp() == 0 || &lyx_view_ == &theApp()->currentView())
- return;
+// if (theApp() == 0 || &lyx_view_ == theApp()->currentView())
+// return;
theApp()->setCurrentView(lyx_view_);
lyx_view_.updateTab();
startBlinkingCursor();
-
- //FIXME: Use case: Two windows share the same buffer.
- // The first window is resize. This modify the inner Buffer
- // structure because Paragraph has a notion of line break and
- // thus line width (this is very bad!).
- // When switching to the other window which does not have the
- // same size, LyX crashes because the line break is not adapted
- // the this BufferView width.
- // The following line fix the crash by resizing the BufferView
- // on a focusInEvent(). That is not a good fix but it is a fix
- // nevertheless. The bad side effect is that when the two
- // BufferViews show the same portion of the Buffer, the second
- // BufferView will show the same line breaks as the first one;
- // even though those line breaks are not adapted to the second
- // BufferView width... such is life!
- resizeBufferView();
}
void GuiWorkArea::focusOutEvent(QFocusEvent * /*event*/)
{
- // No need to do anything if we didn't change views...
- if (&lyx_view_ == &theApp()->currentView())
- return;
-
stopBlinkingCursor();
}
// The font used to display the version info
font.setStyleHint(QFont::SansSerif);
font.setWeight(QFont::Bold);
- font.setPointSize(LyXFont::SIZE_NORMAL);
+ font.setPointSize(convert<int>(lyxrc.font_sizes[LyXFont::SIZE_LARGE]));
int const w = pm.width();
int const h = pm.height();
pain.drawPixmap(x, y, pm);
- x += 260;
+ x += 300;
y += 265;
pain.setPen(QColor(255, 255, 0));
void GuiWorkArea::paintEvent(QPaintEvent * ev)
{
QRect const rc = ev->rect();
+ /*
lyxerr[Debug::PAINTING] << "paintEvent begin: x: " << rc.x()
<< " y: " << rc.y()
<< " w: " << rc.width()
<< " h: " << rc.height() << endl;
+ */
QPainter pain(viewport());
pain.drawPixmap(rc, screen_, rc);