diff --git a/uppsrc/CtrlCore/Ctrl.cpp b/uppsrc/CtrlCore/Ctrl.cpp index 332022c98..f3dca4fc4 100644 --- a/uppsrc/CtrlCore/Ctrl.cpp +++ b/uppsrc/CtrlCore/Ctrl.cpp @@ -594,7 +594,6 @@ Ctrl::Ctrl() { popupgrab = false; fullrefresh = false; akv = false; - hasdhctrl = false; } void KillTimeCallbacks(void *id, void *idlim); diff --git a/uppsrc/CtrlCore/CtrlChild.cpp b/uppsrc/CtrlCore/CtrlChild.cpp index 07c524782..caf4a6624 100644 --- a/uppsrc/CtrlCore/CtrlChild.cpp +++ b/uppsrc/CtrlCore/CtrlChild.cpp @@ -4,25 +4,11 @@ namespace Upp { #define LLOG(x) // DLOG(x) -bool Ctrl::HasDHCtrl() const -{ - GuiLock __; - if(dynamic_cast(this)) - return true; - for(Ctrl *q = GetFirstChild(); q; q = q->next) - if(q->HasDHCtrl()) - return true; - return false; +bool Ctrl::IsDHCtrl() const { + return dynamic_cast(this); } -void Ctrl::SyncDHCtrl() -{ - GuiLock __; - Ctrl *p = GetTopCtrl(); - p->hasdhctrl = p->HasDHCtrl(); -} - -void Ctrl::AddChild(Ctrl *q, Ctrl *p) +void Ctrl::AddChild(Ctrl *q, Ctrl *p) { GuiLock __; ASSERT(q); @@ -68,8 +54,6 @@ void Ctrl::AddChild(Ctrl *q, Ctrl *p) q->ParentChange(); if(updaterect && GetTopCtrl()->IsOpen()) q->StateH(OPEN); - if(dynamic_cast(q)) - SyncDHCtrl(); } void Ctrl::AddChild(Ctrl *child) @@ -100,8 +84,6 @@ void Ctrl::RemoveChild0(Ctrl *q) if(q->next) q->next->prev = q->prev; q->next = q->prev = NULL; - if(dynamic_cast(q)) - SyncDHCtrl(); } void Ctrl::RemoveChild(Ctrl *q) diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index 4ce9b4304..6959cf99c 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -507,7 +507,6 @@ private: bool popup:1; bool popupgrab:1; byte backpaint:2;//2 - bool hasdhctrl:1; bool akv:1; bool destroying:1; @@ -635,8 +634,6 @@ private: void UpdateArea(SystemDraw& draw, const Rect& clip); Ctrl *GetTopRect(Rect& r, bool inframe, bool clip = true); void DoSync(Ctrl *q, Rect r, bool inframe); - bool HasDHCtrl() const; - void SyncDHCtrl(); void SetInfoPart(int i, const char *txt); String GetInfoPart(int i) const; @@ -725,6 +722,8 @@ private: #endif static void InstallPanicBox(); + + bool IsDHCtrl() const; private: void DoRemove(); diff --git a/uppsrc/CtrlCore/CtrlDraw.cpp b/uppsrc/CtrlCore/CtrlDraw.cpp index c46aa908f..c338e7c03 100644 --- a/uppsrc/CtrlCore/CtrlDraw.cpp +++ b/uppsrc/CtrlCore/CtrlDraw.cpp @@ -21,7 +21,7 @@ void Ctrl::RefreshFrame(const Rect& r) { LLOG("RefreshRect " << Name() << ' ' << r); if(GuiPlatformRefreshFrameSpecial(r)) return; - if(!top && !hasdhctrl) { + if(!top && !IsDHCtrl()) { if(InFrame()) parent->RefreshFrame(r + GetRect().TopLeft()); else @@ -168,7 +168,7 @@ void Ctrl::ScrollView(const Rect& _r, int dx, int dy) #else if(IsFullRefresh() || !IsVisible()) return; - if(hasdhctrl) { + if(IsDHCtrl()) { Refresh(_r); return; } @@ -603,7 +603,7 @@ void Ctrl::UpdateArea0(SystemDraw& draw, const Rect& clip, int backpaint) LLOG("========== END (TARGET IS BACKBUFFER)"); return; } - if(backpaint == FULLBACKPAINT || globalbackpaint/* && !hasdhctrl && !dynamic_cast(this)*/) { + if(backpaint == FULLBACKPAINT || globalbackpaint) { ShowRepaintRect(draw, clip, LtRed()); BackDraw bw; bw.Create(draw, clip.GetSize()); diff --git a/uppsrc/CtrlCore/CtrlPos.cpp b/uppsrc/CtrlCore/CtrlPos.cpp index 199229ef3..f11bbbdd1 100644 --- a/uppsrc/CtrlCore/CtrlPos.cpp +++ b/uppsrc/CtrlCore/CtrlPos.cpp @@ -188,7 +188,7 @@ void Ctrl::SetPos0(LogPos p, bool _inframe) { GuiLock __; if(p == pos && inframe == _inframe) return; - if(parent && !hasdhctrl) { + if(parent && !IsDHCtrl()) { if(!globalbackbuffer) { Rect from = GetRect().Size(); Top *top = GetTopRect(from, true)->top; diff --git a/uppsrc/CtrlCore/TopWin32.cpp b/uppsrc/CtrlCore/TopWin32.cpp index 0a0d76ed5..98eed315e 100644 --- a/uppsrc/CtrlCore/TopWin32.cpp +++ b/uppsrc/CtrlCore/TopWin32.cpp @@ -161,9 +161,7 @@ void TopWindow::SyncCaption() else style = exstyle = 0; style &= ~(WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_POPUP|WS_DLGFRAME); exstyle &= ~(WS_EX_TOOLWINDOW|WS_EX_DLGMODALFRAME); - style |= WS_CAPTION; - if(hasdhctrl) - style |= WS_CLIPSIBLINGS|WS_CLIPCHILDREN; + style |= WS_CAPTION|WS_CLIPSIBLINGS|WS_CLIPCHILDREN; if(minimizebox && !GetOwner()) style |= WS_MINIMIZEBOX; if(maximizebox) diff --git a/uppsrc/CtrlLib/RichTextView.cpp b/uppsrc/CtrlLib/RichTextView.cpp index e1918fa0a..2e09ad1b4 100644 --- a/uppsrc/CtrlLib/RichTextView.cpp +++ b/uppsrc/CtrlLib/RichTextView.cpp @@ -171,8 +171,8 @@ void RichTextView::RefreshRange(int a, int b) int h = min(max(a, b) + 1, GetLength()); if(l == h) return; - Rect r1 = text.GetCaret(l, GetPage()); - Rect r2 = text.GetCaret(h, GetPage()); + Rect r1 = text.GetCaret(l, GetPage()) + margin.TopLeft(); + Rect r2 = text.GetCaret(h, GetPage()) + margin.TopLeft(); Zoom zoom = GetZoom(); Refresh(Rect(0, zoom * (r1.top - sb), GetSize().cx, zoom * (r2.bottom - sb + zoom.d - 1))); } diff --git a/uppsrc/TextDiffCtrl/DirDiff.cpp b/uppsrc/TextDiffCtrl/DirDiff.cpp index d3f5a5a66..f6d479b25 100644 --- a/uppsrc/TextDiffCtrl/DirDiff.cpp +++ b/uppsrc/TextDiffCtrl/DirDiff.cpp @@ -160,7 +160,7 @@ DirDiffDlg::DirDiffDlg() clearFind.RightPosZ(1, 16).VSizePosZ(1, 1); find.AddChild(&clearFind); - files_pane.Add(info.SetAlign(ALIGN_RIGHT).TopPos(3 * cy + 3 * div, bcy).RightPos(1, 70)); + files_pane.Add(info.SetAlign(ALIGN_RIGHT).TopPos(3 * cy + 3 * div, bcy).RightPos(1, Zx(70))); files_pane.Add(compare.TopPos(2 * cy + 2 * div, bcy).RightPos(0, bcx)); files_pane.Add(files.VSizePos(3 * cy + bcy + 4 * div, 22).HSizePos()); files_pane.Add(find.HSizePosZ(4, 4).BottomPosZ(4, 19));