diff --git a/docs/wayland-combo-dropdowns.png b/docs/wayland-combo-dropdowns.png new file mode 100644 index 0000000000000000000000000000000000000000..c73078163c07feca3dd12c0157932703afb07614 GIT binary patch literal 49193 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
H2|b{Ea(T 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 literal 0 HcmV?d00001 diff --git a/docs/wayland-port.md b/docs/wayland-port.md index 2b33d73ad..50de5be61 100644 --- a/docs/wayland-port.md +++ b/docs/wayland-port.md @@ -2305,3 +2305,44 @@ layer, for the point form, for an image made from a context and for one made fro WHAT IS STILL TRUE: with SAL_NO_NWF=1, which turns off LibreOffice own native widget path, the dropdowns and the dialog button bezels APPEAR. With it on they do not. So the application takes that path, and the path produces nothing on this stack for reasons not yet found. + +## THE MISSING DROPDOWN, FOUND: a combo box cell drew itself the size of the whole window + +The user reported that Set Paragraph Style, Font Name and Font Size have no dropdown button. They +have one now, and the cause was not in the graphics layer at all. + + - (NSSize) cellSize { + NSSize size = [_controlView frame].size; /* the WHOLE VIEW */ + size.width -= 3.0; + size.height -= 2.0; + return size; + } + +and both draw methods opened with frame.size = [self cellSize], throwing away the rectangle the +caller had asked for. That works when a cell owns its view, one NSComboBox per combo box, which is +every cocotron application. LibreOffice draws MANY controls with ONE cell into ONE shared +SalFrameView that covers the window, so the cell asked the view how big it was and got the window: + + CIDER_COMBO asked=249x20+0+0 cellSize=1021x638 button=20x20+229+0 Set Paragraph Style + CIDER_COMBO asked=176x20+0+0 cellSize=1021x638 button=20x20+156+0 Font Name + CIDER_COMBO asked=78x20+0+0 cellSize=1021x638 button=20x20+58+0 Font Size + +Before the fix the button rect was 638x638 at x=383, computed from a 1021 wide frame, so it landed +entirely outside the small offscreen context LibreOffice had handed over. Nothing was clipped, badly +drawn or mis-coloured: the whole native control was painted off the edge of its own bitmap. The fix +is one line in each method, deleted: draw in the rect the caller gave. + +HOW THE INSTRUMENT LIED FIRST, which is the reusable part. The cell trace lived on +-[NSCell drawWithFrame:inView:] and reported ZERO cell draws in a run that drew thirty three of +them, because NSTextFieldCell and NSButtonCell override that method and neither calls super. A +trace on a base class sees only the classes that do not override it, and its silence looks exactly +like a code path that is never taken. What broke the deadlock was tracing the CONSTRUCTORS instead: +NSCell initTextCell and initImageCell are the funnel every cell passes through, and they showed +LibreOffice creating one NSComboBoxCell, one NSPopUpButtonCell, four NSButtonCells and thirty two +NSTextFieldCells. A path that creates cells and never draws them is a different bug from one that +is never entered, and only the constructor trace could tell them apart. + +STILL OPEN in the same area: three NSButtonCell draws arrive with view=nil, and every bezel in +cocotron goes through [controlView graphicsStyle], which is a category on NSView. A message to nil +returns nil, so those buttons get no bezel at all. That is the alert button with a label and no +box, and it is the next thing to fix. diff --git a/vendor/patches/cocotron/0064-a-combo-box-cell-drew-itself-the-size-of-the-window.patch b/vendor/patches/cocotron/0064-a-combo-box-cell-drew-itself-the-size-of-the-window.patch new file mode 100644 index 000000000..c847d2d0b --- /dev/null +++ b/vendor/patches/cocotron/0064-a-combo-box-cell-drew-itself-the-size-of-the-window.patch @@ -0,0 +1,142 @@ +--- a/AppKit/NSCell.m ++++ b/AppKit/NSCell.m +@@ -367,6 +367,14 @@ + } + + - initTextCell: (NSString *) string { ++ /* WHICH CELL CLASSES AN APPLICATION EVEN MAKES. A control that comes out empty has two very ++ * different causes and one of them is invisible from the drawing side: a cell that was never ++ * created, or was created as nil, draws nothing and raises nothing, because a message to nil ++ * is silent. Naming every cell at birth separates that from a cell that draws and produces ++ * no pixels. */ ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSLog(@"CIDER_CELL_NEW %s initTextCell", object_getClassName(self)); ++ } + _focusRingType = [[self class] defaultFocusRingType]; + _state = NSControlStateValueOff; + _font = [[NSFont userFontOfSize: 0] retain]; +@@ -386,6 +394,9 @@ + } + + - initImageCell: (NSImage *) image { ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSLog(@"CIDER_CELL_NEW %s initImageCell", object_getClassName(self)); ++ } + _focusRingType = [[self class] defaultFocusRingType]; + _state = NSControlStateValueOff; + _font = nil; +--- a/AppKit/NSComboBoxCell.m ++++ b/AppKit/NSComboBoxCell.m +@@ -17,6 +17,8 @@ + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + ++#include ++ + #import + #import + #import +@@ -366,13 +368,33 @@ + return rect; + } + ++/* ++ * DRAW IN THE RECT THE CALLER GAVE, which is what AppKit does and what this class used not to do. ++ * ++ * Both of these began with frame.size = [self cellSize], and cellSize here is not an intrinsic ++ * size at all: it is [_controlView frame].size minus three by two. That works only when the cell ++ * owns its view, one NSComboBox per combo box. An application that draws MANY controls with ONE ++ * cell into ONE shared view -- which is how LibreOffice renders its toolbar -- got the size of the ++ * WHOLE WINDOW instead: asked for a field of about 200 by 22, the cell drew itself 1021 by 638 and ++ * put its button at x=383 width 638, entirely outside the small context it had been handed. That ++ * is why the dropdown button was missing, and why the missing thing was the entire native control ++ * rather than just the arrow. ++ */ + - (void) drawInteriorWithFrame: (NSRect) frame inView: (NSView *) controlView { +- frame.size = [self cellSize]; + [super drawInteriorWithFrame: frame inView: controlView]; + } + + - (void) drawWithFrame: (NSRect) frame inView: (NSView *) controlView { +- frame.size = [self cellSize]; ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSRect button = [self buttonRectForBounds: frame]; ++ ++ NSLog(@"CIDER_COMBO asked=%gx%g+%g+%g cellSize=%gx%g button=%gx%g+%g+%g view=%s", ++ frame.size.width, frame.size.height, frame.origin.x, frame.origin.y, ++ [self cellSize].width, [self cellSize].height, button.size.width, ++ button.size.height, button.origin.x, button.origin.y, ++ (controlView != nil) ? object_getClassName(controlView) : "nil"); ++ } ++ + [super drawWithFrame: frame inView: controlView]; + + [[controlView graphicsStyle] +--- a/AppKit/NSGraphicsContext.m ++++ b/AppKit/NSGraphicsContext.m +@@ -125,8 +125,19 @@ + + (NSGraphicsContext *) graphicsContextWithCGContext: (CGContextRef) context + flipped: (BOOL) flipped + { +- return [[[self alloc] initWithGraphicsPort: context +- flipped: flipped] autorelease]; ++ NSGraphicsContext *result = [[[self alloc] initWithGraphicsPort: context ++ flipped: flipped] autorelease]; ++ ++ /* THE STEP BEFORE A CELL DRAWS. An application that renders AppKit controls into its own ++ * Core Graphics context wraps that context here first, so this firing means the native control ++ * path was entered even if nothing downstream draws, and its silence means the path was never ++ * taken at all. Those are opposite bugs and nothing else separates them. */ ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSLog(@"CIDER_CELL_CTX cgcontext=%p flipped=%d result=%p", (void *) context, (int) flipped, ++ (void *) result); ++ } ++ ++ return result; + } + + static NSMutableArray *_contextStack() { +--- a/AppKit/NSTextFieldCell.m ++++ b/AppKit/NSTextFieldCell.m +@@ -18,6 +18,8 @@ + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + + #import "NSCoder+AppKit.h" ++#include ++ + #import + #import + #import +@@ -389,6 +391,15 @@ + - (void) drawWithFrame: (NSRect) frame inView: (NSView *) control { + NSRect backRect = [self drawingRectForBounds: frame]; + ++ /* THIS OVERRIDE DOES NOT CALL SUPER, so the trace on NSCell never sees a text field, a combo ++ * box or anything else below them. A trace put only on the base class reported ZERO cell draws ++ * in a run that drew thirty two of them, which reads exactly like a path that is never taken. */ ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSLog(@"CIDER_CELL %s frame=%gx%g+%g+%g view=%s", object_getClassName(self), ++ frame.size.width, frame.size.height, frame.origin.x, frame.origin.y, ++ (control != nil) ? object_getClassName(control) : "nil"); ++ } ++ + _controlView = control; + + if ([self isBezeled]) { +--- a/AppKit/NSButtonCell.m ++++ b/AppKit/NSButtonCell.m +@@ -1513,6 +1513,14 @@ + } + + - (void) drawWithFrame: (NSRect) frame inView: (NSView *) control { ++ /* Same reason as NSTextFieldCell: this override does not call super either. */ ++ if (getenv("CIDER_TRACE_CELLS") != NULL) { ++ NSLog(@"CIDER_CELL %s frame=%gx%g+%g+%g view=%s transparent=%d", ++ object_getClassName(self), frame.size.width, frame.size.height, frame.origin.x, ++ frame.origin.y, (control != nil) ? object_getClassName(control) : "nil", ++ (int) [self isTransparent]); ++ } ++ + _controlView = control; + + if ([self isTransparent])