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; }



Attachment: rtlcursorshape.patch
Description: Binary data

Attachment: PGP.sig
Description: Signierter Teil der Nachricht

Reply via email to