Ok, 1/3 of the height makes sense, will use that instead.
Need another OK... Stefan
Stefan, you won't believe this! On Friday I also wrote a patch for this --- but I just don't have the time to work on LyX...:( I was going to just clean it up and send it in any day...Anyhow, naturally my patch is pretty similar to yours. The only significant difference is that I saw that in previous versions, the bottom section was of width h/3, so I guess we could stick with that.Other than than that, It'd be great to get this committed, it would make working with bidi that much easier.BTW, this is http://bugzilla.lyx.org/show_bug.cgi?id=3163.(I'm attaching my patch just for comparison, if you want; or you can just forget it and use yours; but as I said, I just got mine working, but didn't have time to clean it up yet...)Thanks! Dov Stefan Schimanski wrote:Hi! Was there any reason to ignore the cursor shape in the Qt frontend? Here is a patch: Index: src/frontends/qt4/GuiWorkArea.cpp =================================================================== --- src/frontends/qt4/GuiWorkArea.cpp (Revision 18626) +++ src/frontends/qt4/GuiWorkArea.cpp (Arbeitskopie) @@ -122,16 +122,42 @@ void draw(QPainter & painter) { - // FIXME: do something depending on the cursor shape. - if (show_ && rect_.isValid()) - painter.fillRect(rect_, color_); + if (show_ && rect_.isValid()) { + switch (shape_) { + case L_SHAPE:+ painter.fillRect(rect_.x(), rect_.y(), CursorWidth, rect_.height(), color_); + painter.drawLine(rect_.bottomLeft().x() + CursorWidth, rect_.bottomLeft().y(), + rect_.bottomRight ().x(), rect_.bottomLeft().y());+ break; + + case REVERSED_L_SHAPE:+ painter.fillRect(rect_.x() + 4, rect_.y(), CursorWidth, rect_.height(), color_); + painter.drawLine(rect_.bottomRight().x() - CursorWidth, rect_.bottomLeft().y(), + rect_.bottomLeft().x(), rect_.bottomLeft().y());+ break; + + default: + painter.fillRect(rect_, color_); + break; + } + } } void update(int x, int y, int h, CursorShape shape) { color_ = guiApp->colorCache().get(Color::cursor); - rect_ = QRect(x, y, CursorWidth, h); shape_ = shape; + switch (shape) { + case L_SHAPE: + rect_ = QRect(x, y, CursorWidth + 4, h); + break; + case REVERSED_L_SHAPE: + rect_ = QRect(x - 4, y, CursorWidth + 4, h); + break; + default: + rect_ = QRect(x, y, CursorWidth, h); + break; + } } void show(bool set_show = true) { show_ = set_show; }Index: lyx-devel/src/frontends/qt4/GuiWorkArea.cpp ===================================================================--- lyx-devel.orig/src/frontends/qt4/GuiWorkArea.cpp 2007-06-01 04:31:46.000000000 +0300 +++ lyx-devel/src/frontends/qt4/GuiWorkArea.cpp 2007-06-01 05:26:03.000000000 +0300@@ -123,14 +123,25 @@ void draw(QPainter & painter) { // FIXME: do something depending on the cursor shape. - if (show_ && rect_.isValid()) - painter.fillRect(rect_, color_); + if (show_ && rect_.isValid()) { + painter.fillRect(side_bar_, color_); + switch (shape_) { + case L_SHAPE: + case REVERSED_L_SHAPE: + painter.fillRect(bottom_bar_, color_); + break; + default: + break; + } + } } void update(int x, int y, int h, CursorShape shape) { color_ = guiApp->colorCache().get(Color::cursor); - rect_ = QRect(x, y, CursorWidth, h);+ rect_ = QRect(x-(shape == REVERSED_L_SHAPE ? h/3 - CursorWidth : 0), y, h/3, h);+ side_bar_ = QRect(x, y, CursorWidth, h);+ bottom_bar_ = QRect(x-(shape == REVERSED_L_SHAPE ? h/3 - CursorWidth : 0), y+h-CursorWidth, h/3, CursorWidth);shape_ = shape; } @@ -148,6 +159,8 @@ QColor color_; /// QRect rect_; + QRect bottom_bar_; + QRect side_bar_; };
PGP.sig
Description: Signierter Teil der Nachricht