X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FGuiWorkArea_Private.h;h=6acd9886ddabf51f25dd1cef5420000e4db775eb;hb=29a8097c3c14aad871c7e396a59542fe47e39ea1;hp=6342eaba4ac153fc7b1bf6201453ba39f5bd140b;hpb=c293be56bd12c5dc46e5cedd2828e33918fccef7;p=lyx.git diff --git a/src/frontends/qt/GuiWorkArea_Private.h b/src/frontends/qt/GuiWorkArea_Private.h index 6342eaba4a..6acd9886dd 100644 --- a/src/frontends/qt/GuiWorkArea_Private.h +++ b/src/frontends/qt/GuiWorkArea_Private.h @@ -22,8 +22,6 @@ namespace lyx { -class Buffer; - namespace frontend { class GuiCompleter; @@ -70,7 +68,6 @@ public: /** * Implementation of the work area (buffer view GUI) */ -class CaretWidget; struct GuiWorkArea::Private { @@ -85,12 +82,18 @@ struct GuiWorkArea::Private /// void dispatch(FuncRequest const & cmd0); + /// Make caret visible and signal that its geometry needs to be updated + void resetCaret(); /// recompute the shape and position of the caret void updateCaretGeometry(); /// show the caret if it is not visible void showCaret(); /// hide the caret if it is visible void hideCaret(); + /* Draw the caret. Parameter \c horiz_offset is not 0 when there + * has been horizontal scrolling in current row + */ + void drawCaret(QPainter & painter, int horiz_offset) const; /// Set the range and value of the scrollbar and connect to its valueChanged /// signal. void updateScrollbar(); @@ -107,21 +110,21 @@ struct GuiWorkArea::Private void updateScreen(QRectF const & rc); /// - GuiWorkArea * p; + GuiWorkArea * p = nullptr; /// - BufferView * buffer_view_; + BufferView * buffer_view_ = nullptr; /// - GuiView * lyx_view_; + GuiView * lyx_view_ = nullptr; /// Do we need an intermediate image when painting (for now macOS and Wayland) - bool use_backingstore_; + bool use_backingstore_ = false; /// QImage screen_; - /// - CaretWidget * caret_; /// is the caret currently displayed - bool caret_visible_; + bool caret_visible_ = false; + /// + bool needs_caret_geometry_update_ = true; /// QTimer caret_timeout_; @@ -131,25 +134,25 @@ struct GuiWorkArea::Private DoubleClick dc_event_; /// - bool need_resize_; + bool need_resize_ = false; /// the current preedit text of the input method docstring preedit_string_; /// Number of lines used by preedit text - int preedit_lines_; + int preedit_lines_ = 1; /// the attributes of the preedit text QList preedit_attr_; /// Ratio between physical pixels and device-independent pixels /// We save the last used value to detect changes of the /// current pixel_ratio of the viewport. - double last_pixel_ratio_; + double last_pixel_ratio_ = 1.0; /// GuiCompleter * completer_; /// Special mode in which Esc and Enter (with or without Shift) /// are ignored - bool dialog_mode_; + bool dialog_mode_ = false; /// store the name of the context menu when the mouse is /// pressed. This is used to get the correct context menu /// when the menu is actually shown (after releasing on Windows) @@ -160,15 +163,15 @@ struct GuiWorkArea::Private /// support::FileName file_name_; /// - bool shell_escape_; + bool shell_escape_ = false; /// - bool read_only_; + bool read_only_ = false; /// docstring vc_status_; /// - bool clean_; + bool clean_ = true; /// - bool externally_modified_; + bool externally_modified_ = false; }; // GuiWorkArea