Skip to content

Feature/table#7

Draft
tmssngr wants to merge 361 commits intomasterfrom
feature/table
Draft

Feature/table#7
tmssngr wants to merge 361 commits intomasterfrom
feature/table

Conversation

@tmssngr
Copy link

@tmssngr tmssngr commented Jul 14, 2025

At the moment just for catching bugs.

@github-actions
Copy link

github-actions bot commented Jul 14, 2025

Test Results

104 files   -    441  104 suites   - 441   5s ⏱️ - 29m 10s
 65 tests  -  4 334   65 ✅  -  4 316  0 💤  -  18  0 ❌ ±0 
212 runs   - 16 511  212 ✅  - 16 370  0 💤  - 141  0 ❌ ±0 

Results for commit 9db747c. ± Comparison against base commit 0147112.

This pull request removes 4334 tests.
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicASCII_dollarSign
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicASCII_emptyString
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicASCII_letterA
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicASCII_letters
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16LE_null
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16_AsciiLetters
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16_Asciiletter
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16_LotsOfLetters
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16_letter
AllGTKTests org.eclipse.swt.tests.gtk.Test_GtkConverter ‑ test_HeuristicUTF16_letters
…

♻️ This comment has been updated with latest results.

@tmssngr tmssngr force-pushed the feature/table branch 8 times, most recently from 2b127df to 9e73db9 Compare July 22, 2025 14:29
Gtk 3 "popup-menu" signal no longer exists on Gtk 4 thus popup menu has
to be handled by the generic "gesture-press".
Renamed the Gtk 3 handler to acknowledge the fact it doesn't belong to
Gtk 4 port and removed wrong effort to port the popup-menu handler to
Gtk 4.
@tmssngr tmssngr marked this pull request as draft July 24, 2025 09:12
HeikoKlare and others added 8 commits July 24, 2025 12:37
Some GC tests are explicitly executed on a non-default device zoom.
However, most of them use a GC as subject to test that is  created in a
setup method that is thus using the original device zoom instead of the
non-default one set by the test afterwards.

This change ensures that when executing a test with a non-default device
zoom, the GC used as subject to test is recreated to rely on that
modified device zoom.
…platform#2346

The GC#getClipping(Region) call sets the passed region to the current
clipping region of the GC. Currently, this is not represented as an
operation inside the passed Region, such that when calculating a handle
for a different zoom of that region or when copying that region the
according application of GC#getClipping(Region) to that region is
missing.

This change adds the missing operation to the Region. Since the clipping
needs to be calculated at the of executing the GC#getClipping(Region)
method and not at the time of applying the region operation when
retrieving a handle, the GC#getClipping(Region) stores an operation
inside GC that maintains handles for the according clipping region at
the time of executing the GC#getClipping(Region) method for every zoom
at which the GC is requested. This ensures that the proper clipping
state is available to the Region.

Fixes eclipse-platform#2346
When calling GC#setFont(), a copy of the given font is created. However,
the font may be null, leading to an exception. In addition, a font
should be retrieved from the font provider instead of creating a new
font that is manually disposed later on.

This change ensures that null fonts are properly handled and that the
stored font is retrieved from the provider.

Fixes eclipse-platform#2350
General spelling clean up
The device zoom is hard-coded to 100% when creating blank images.
Setting it to the current device zoom in the constructor is both wrong
and unnecessary, given that the value will be immediately overwritten.
This commit releases the HandleCoreWebView2SwtCallback resource created by Edge browser in
createControllerInitializationCallback after it has been registered by
CreateCoreWebView2Controller method as otherwise the
HandleCoreWebView2SwtCallback object can cause memory leaks if left
unreleased.

fixes eclipse-platform#2339
Previously, calculateRenderSize() and getMonitorZoom() of MenuItem used
getMenu() to get some context providing the relevant shell instead of
getParent(). Since that menu may be null when the MenuItem has no submenu
(e.g., PUSH, CHECK styles), an NPE might have been thrown.

This change replaces getMenu().getShell() with getParent().getShell(),
ensuring a valid shell is always used regardless of item type.

Fixes eclipse-platform#2247
HeikoKlare and others added 8 commits July 30, 2025 13:23
The MonitorAwareRectangle/MonitorAwarePoint classes have been replaced
by Rectangle.WithMonitor and Point.WithMonitor. They have been marked as
deprecated but not removed because of issues with API tooling, however
they were marked as non-API so they may be removed without any
deprecation period.

This change effectively removes the classes, only keeping
package-internal stubs of them as otherwise API tooling currently fails.
height

- Updated productive code to prevent IllegalArgumentException when
replacing text in a StyledText control with variable line height and no
focus, by adding boundary checks.
- Added a regression test to validate the fix: ensures no exception is
thrown when replacing the full text range under these conditions.

Fixes: eclipse-platform#2302
Remove Cursor#win32_new method similar to other other resources e.g.
Image, Region, Path etc. Also there is no calling to this method.
While retrieving the handle for the cursor for specific zoom, currently
we scale up the cursor source image but not the hotspot coordinates.
This commit ensures we have per-zoom coordinates for the cursor.
Extracting out the OS handle creation logic into separate methods.
Intention is to make them reusable if someone want to create only a OS
handle within a Cursor class.
…2323

Prior to recent changes that ensure that a font handle is always
retrieved via the SWTFontProvider, the hFont variable in
Caret::setIMEFont was retrieved directly from the font object (using
font.handle). Since those recent changes, hFont is fetched via
SWTFontProvider, which throws an exception if the font is disposed.

Previously, when the font was disposed, hFont (font.handle) would be
zero, and the method would fall back to using defaultFont for setting
the IME font. Now, this fallback no longer works because the exception
is thrown before the fallback can occur.

This commit restores the intended behavior by setting hFont as zero if
the font is disposed, preventing the exception.

Fixes eclipse-platform#2323
Recently, a strict check was introduced that ImageData should be
linearly scaled for other zoom levels. ImageDataProviders inside SWT
not following this strict checks were modified (e.g., to return only
image data at 100%).

However, this change broke DPIUtil.autoScaleImageData. That function
creates an Image using the system zoom level, draws it on a GC at scaled
dimensions, and then requests ImageData at 100% zoom from the image.
Since the ImageDataProvider was now restricted to 100% zoom only,
requesting imageData at other zoom levels while creating an image at
system zoom level triggered recursive calls, causing a stack overflow
error.

This commit reverts the behavior of the ImageDataProvider used in
DPIUtil.autoScaleImageData to return the same ImageData at all zoom
levels.
We also disable the strict zoom check in this specific case, because the
scaling is done by GC.drawImage() and the ImageData used to create the
is expected to be same.

Fixes eclipse-platform#2353
Gtk ships with "HighContrast" and "HighContrastInverse" and Mate desktop
ships "ContrastHigh*" theme. If the gtk theme is any of these say it's
"high contrast" theme.
Thomas Singer added 28 commits September 19, 2025 09:36
as this does not seem to be relevant any more for a custom drawn table
otherwise the escape press will not close dialogs
Windows 11: if the v-scrollbar's maximum value had been set to 0,
setting the h-scrollbar's maximum value also to 0 automatically reset
the v-scrollbar's maximum value to 100. This caused scrollwheel events
to be accepted though no v-scrollbar was not visible.
If only the visibility of the h-scrollbar caused the v-scrollbar to also
occur, the remaining width was not correctly determined making it
impossible to resize the last column (its draggable handle was
invisible, even when scrolling at the highest h-position).
When resizing a column caused the h-scrollbar to occur/vanish, the
visual horizontal scroll position remainged incorrect until the user
clicked the h-scrollbar.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.