wxWidgets / wxWidgets

Cross-Platform C++ GUI Library
https://www.wxwidgets.org/
5.78k stars 1.7k forks source link

single line TextCtrl doesn't scroll #21167

Closed wxtrac closed 2 years ago

wxtrac commented 19 years ago

Issue migrated from trac ticket # 1802

component: old wxOSX/Carbon port | priority: normal

2004-08-10 01:09:42: kasplat created the issue


The single line TextCtrl doesn't support auto-scrolling to the right as the user types text, nor does it scroll horizontally as the user tries to drag the selection. This makes it difficult to use for strings that are wider than the control width.

ka p.s. My main issue is not being able to hide a TextCtrl, but I know that you already know about that one ;-)

wxtrac commented 19 years ago

2004-09-25 08:48:32: ryannpcs commented


I'm using CVS HEAD and it works for me... thanks for the report!

wxtrac commented 19 years ago

2004-09-25 15:52:02: hockkn (Kevin Hock) commented


Open the text control sample, and on ANY of the single line text controls (except the read-only one), start typing. When you get to the right edge, the cursor just goes off screen, and you can't see what you're typing. Likewise, highlighting and going to the right or left where there is material offscreen does not cause the single line text to scroll.

I'm using a slightly outdated HEAD (about 2 weeks) but not much has changed on the Mac during that time, mostly warning fixes and secondary classes like cursor that wouldn't affect this. Nor have I seen any changes that look like they would affect this, unless this functionality is really hidden somewhere (or your GetLineLength change actually fixed this). I'm avoiding HEAD right now because of the wx-config changes.

I just want to be sure this is actually fixed and wasn't misunderstood, sorry if it seems like 2nd guessing but this is an important one to me as well.

wxtrac commented 19 years ago

2004-09-25 15:54:46: ryannpcs commented


Kevin - please update and tell me - because it does work for me. I'll leave it open - and thanks for your work on these bugs!!!!

wxtrac commented 19 years ago

2004-09-25 16:40:18: hockkn (Kevin Hock) commented


Specific to 10.3.

wxtrac commented 19 years ago

2004-09-25 16:49:48: ryannpcs commented


Right. I don't have 10.3 - so I'll have to leave this one up to stefan.

wxtrac commented 19 years ago

2004-10-05 23:39:46: vell-osaf (David Surovell) commented


as of 05-Oct-04, bug still present on MacOS X 10.3.5 with top-of-tree Carbon sources

wxtrac commented 19 years ago

2004-10-06 09:19:23: @csomor commented


as we cannot fix or extend the behaviour of the built-in HITextView could you please switch the version trigger in line 377 of textctrl.cpp from 0x1030 to 0x1040 and report me any problems you encounter on 10.3.X when using the 'old' MLTE based implementation

Thanks,

Stefan

wxtrac commented 19 years ago

2004-10-06 19:45:57: @RobinD42 commented


I made the change and now if the textctrl has the focus when the top-level parent is destroyed I get a crash. Here is the top of the stack trace:

Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000194

Thread 0 Crashed: 0 libwx_macd-2.5.3.dylib 0x0995d738 0x957a000 + 0x3e3738 1 libwx_macd-2.5.3.dylib 0x09686e2c wxWindow::MacGetVisibleRegion(bool) + 0x160 (window.cpp:2690) 2 libwx_macd-2.5.3.dylib 0x09636e9c wxMacWindowClipper::wxMacWindowClipperunified + 0xdc (dc.cpp:121) 3 libwx_macd-2.5.3.dylib 0x09636dac wxMacWindowClipper::wxMacWindowClipperin-charge + 0x28 (dc.cpp:127) 4 libwx_macd-2.5.3.dylib 0x09675bf8 TPPaneFocusProc(OpaqueControlRef, short) + 0x188 (textctrl.cpp:2344) 5 com.apple.HIToolbox 0x929564b0 InvokeControlUserPaneFocusUPP + 0x18 6 com.apple.HIToolbox 0x92989b00 HandleFocus(UserPaneGlobals) + 0x40 7 com.apple.HIToolbox 0x927f7590 UserPaneCDEF + 0x1b8 8 com.apple.HIToolbox 0x927df11c DispatchMessage(ClassicCDEFAdapter, short, long, unsigned char, unsigned char) + 0xb0 9 com.apple.HIToolbox 0x928ad3f0 SetFocusPart(ClassicCDEFAdapter, OpaqueEventRef) + 0x6c 10 com.apple.HIToolbox 0x927e13d4 ClassicCDEFAdapter::EventHandler(OpaqueEventHandlerCallRef, OpaqueEventRef, void) + 0x260 11 com.apple.HIToolbox 0x927d1fc8 DispatchEventToHandlers + 0x150 12 com.apple.HIToolbox 0x927d223c SendEventToEventTargetInternal + 0x174 13 com.apple.HIToolbox 0x927d66bc SendEventToEventTargetWithOptions + 0x28 14 com.apple.HIToolbox 0x92809024 SendControlDefSetFocusPart(HIView, short, unsigned char, short) + 0xa8 15 com.apple.HIToolbox 0x9281de6c HIView::SetFocusPartInternal(short, unsigned char, unsigned char, short*, short) + 0x70 16 com.apple.HIToolbox 0x9281d408 HIView::SetFocusPart(short, unsigned char) + 0x94 17 com.apple.HIToolbox 0x928b6fc4 ClearKeyboardFocus + 0x70 18 com.apple.HIToolbox 0x928e9af8 _ClearKeyboardFocusWithExtremePrejudice + 0x18 19 com.apple.HIToolbox 0x927f9208 HIView::Destruct() + 0x34 20 com.apple.CoreFoundation 0x90190cf8 CFRelease + 0x1e8 21 libwx_macd-2.5.3.dylib 0x09608dcc wxMacControl::Dispose() + 0x24 (utils.cpp:1440) 22 libwx_macd-2.5.3.dylib 0x0968107c wxWindow::~wxWindow [unified]() + 0x404 (window.cpp:763) 23 libwx_macd-2.5.3.dylib 0x09680bf4 wxWindow::~wxWindow [not-in-charge]() + 0x24 (window.cpp:784) 24 libwx_macd-2.5.3.dylib 0x096b6194 wxControlBase::~wxControlBase [unified]() + 0x40 (ctrlcmn.cpp:51) 25 libwx_macd-2.5.3.dylib 0x096b60d0 wxControlBase::~wxControlBase [not-in-charge]() + 0x24 (ctrlcmn.cpp:51) 26 libwx_macd-2.5.3.dylib 0x096338e0 wxControl::~wxControl [unified]() + 0x50 (control.cpp:76) 27 libwx_macd-2.5.3.dylib 0x0963380c wxControl::~wxControl [not-in-charge]() + 0x24 (control.cpp:76) 28 libwx_macd-2.5.3.dylib 0x09715cb0 wxTextCtrlBase::~wxTextCtrlBase [unified]() + 0xa4 (textcmn.cpp:66) 29 libwx_macd-2.5.3.dylib 0x09715b88 wxTextCtrlBase::~wxTextCtrlBase [not-in-charge]() + 0x24 (textcmn.cpp:66) 30 libwx_macd-2.5.3.dylib 0x0966f334 wxTextCtrl::~wxTextCtrl [unified]() + 0x40 (textctrl.cpp:345) 31 libwx_macd-2.5.3.dylib 0x0966f2e0 wxTextCtrl::~wxTextCtrl [in-charge deleting]() + 0x24 (textctrl.cpp:345) 32 libwx_macd-2.5.3.dylib 0x0971cfd8 wxWindowBase::DestroyChildren() + 0x88 (wincmn.cpp:372) 33 libwx_macd-2.5.3.dylib 0x09680fb4 wxWindow::~wxWindow [unified]() + 0x33c (window.cpp:748) 34 libwx_macd-2.5.3.dylib 0x09680bf4 wxWindow::~wxWindow [not-in-charge]() + 0x24 (window.cpp:784) 35 libwx_macd-2.5.3.dylib 0x0973df04 wxPanel::~wxPanel [unified]() + 0x40 (panelg.cpp:133) 36 libwx_macd-2.5.3.dylib 0x0973deb0 wxPanel::~wxPanel [in-charge deleting]() + 0x24 (panelg.cpp:133) 37 libwx_macd-2.5.3.dylib 0x0971cfd8 wxWindowBase::DestroyChildren() + 0x88 (wincmn.cpp:372) 38 libwx_macd-2.5.3.dylib 0x09680fb4 wxWindow::~wxWindow [unified]() + 0x33c (window.cpp:748) 39 libwx_macd-2.5.3.dylib 0x09680bf4 wxWindow::~wxWindow [not-in-charge]() + 0x24 (window.cpp:784) 40 libwx_macd-2.5.3.dylib 0x097180ac wxTopLevelWindowBase::~wxTopLevelWindowBase [unified]() + 0x13c (toplvcmn.cpp:76) 41 libwx_macd-2.5.3.dylib 0x09717eec wxTopLevelWindowBase::~wxTopLevelWindowBase [not-in-charge]() + 0x24 (toplvcmn.cpp:76) 42 libwx_macd-2.5.3.dylib 0x0967cb28 wxTopLevelWindowMac::~wxTopLevelWindowMac [unified]() + 0x168 (toplevel.cpp:864) 43 libwx_macd-2.5.3.dylib 0x0967c93c wxTopLevelWindowMac::~wxTopLevelWindowMac [not-in-charge]()

wxtrac commented 19 years ago

2005-04-06 17:04:36: hockkn (Kevin Hock) commented


Single-line text controls now use non-HIView implementation which does support horizontal scrolling. That's why it always worked on 10.2--10.2 has never used the HIView control.