GTK4 issues found by SWT test suite
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 28/100
Línea de trabajo
Start with Display._getDeviceZoom and the GTK4 branch of getPrimaryMonitor for the zoom case; the other items require locating the SWT event code for each affected widget. Reproduce under GTK4 using the internal SWT test harness and compare event ordering and values with GTK3, Win32, or Cocoa. Because this is an umbrella list spanning input, focus, widgets, tables and trees, and display scaling, a newcomer should first select one reproducible item rather than attempt all reported defects.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
A while ago @akurtakov asked me to test GTK4, which I finally found the time for.
Here are the GTK4 bugs our internal SWT test harness found.
Each one is a difference from SWT on GTK3, which behaves like Win32 and Cocoa here.
Tested on master (3376e1982a), GTK 4.22.4 against GTK 3.24.52, X11 backend (GDK_BACKEND=x11).
If a description is not sufficient, let me know.
Input and events
-
Display.postsynthesizes nothing and returns false for every event type, so SWT tests cannot post mouse or key input on GTK4. - Clicks on
Button,List,TableandTreesend noMouseDown/MouseUp;Listsends aMouseUpwithout theMouseDownbefore it. Listeners that react to mouse down/up (drag start, context actions) never run. -
TextandCombosendModifywithout a precedingVerifywhen typing, soVerifyListeners that filter or reject input (numeric fields, length limits) have no effect. - A double click sends
MouseDoubleClickbefore the secondMouseDown; GTK3, Win32 and Cocoa sendMouseDown(withcount2) first and thenMouseDoubleClick, so code that handles the press inMouseDownsees the double click first. - Shifted letters and symbols report the shifted character as
keyCode(72'H'for Shift+h, 33'!'for Shift+1), while GTK3, Win32 and Cocoa report the unshifted key (104'h', 49'1'). Key bindings that checkkeyCodetogether withSWT.SHIFTstop matching. -
FocusInis also sent to the ancestor composites of the control that receives focus, so focus-tracking code (for example part activation) sees extra focus events. Seen forText,List,Table,TreeandSpinner, by click, Tab traversal andforceFocus(). - Check
Buttontoggled with Space:Selectionarrives betweenKeyDownandKeyUp, instead of after the key is released as on GTK3. -
Spinnersends noVerifywhen its value changes through the arrow buttons, the Up/Down keys or the mouse wheel; GTK3 sends one before theModify. -
SpinnersendsModifybeforeSelection(arrow buttons and Up/Down keys), the reverse of GTK3. -
Slider: a thumb drag ends without the finalSelectionwithdetail = SWT.NONE, the mouse wheel fires noMouseWheelevent and moves by a different step than on GTK3, and the slider takes keyboard focus, which it does not on GTK3.
Table and Tree
- Dragging a column header fires no
TableColumn/TreeColumnResizeorMove, and dragging a movable column does not reorder the columns, so user column resizing and reordering are invisible to the application. - With a visible header, item geometry and hit testing use two different origins:
TableItem.getBounds(int)includes the header height (item 0 at y = 28) whileTableItem.getBounds(),getTextBoundsand allTreeItembounds start below it (y = 0), andgetClientArea()(y = 28),getItem(Point)andtoDisplaycount from the widget top, sogetItemat a point insideitem.getBounds()returns null or the previous row. GTK3 uses one origin for all of them.getItemHeight()also reports 25 while the rows are 23 px apart. -
Control.setOrientation(SWT.RIGHT_TO_LEFT)on aTableorTreethat has columns throwsUnsatisfiedLinkError, because it callsGTK3.gtk_container_forall, which does not exist in GTK4.
Graphics
-
GC.drawFocuspaints nothing (0 pixels fordrawFocus(10, 10, 40, 12)on anImage; GTK3 paints a ring), because it renders with the style context of the shell, which has no focus outline on GTK4.
Display
- The device zoom ignores
GDK_SCALEand stays at 100 withGDK_SCALE=2, so the UI renders at 100% (Display._getDeviceZoom; the GTK4 branch ofgetPrimaryMonitoralways takes monitor 0).
- Lenguaje dominante
- Java
- Estrellas
- 202
- Forks
- 206
- Merge medio
- 21 h 55 min
- PR fusionados (30 d)
- 110
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de eclipse-platform/eclipse.platform.swt
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
eclipse-platform/eclipse.platform.swt#3761 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Win32] Table tooltip indexes cell font with subitem -1Posiblemente ocupada @fdesbiens la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
eclipse-platform/eclipse.platform.swt#3752 ·
Los mantenedores suelen responder en 1 día
-
`SWT_AWT.initFrame` takes `(long, String)` in Java; the GTK native declares no `className` and the Cocoa native types it `const char *`Posiblemente ocupada @GreenFuze la tomó hace 12 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
eclipse-platform/eclipse.platform.swt#3665 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-platform/eclipse.platform.swt#3546 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
eclipse-platform/eclipse.platform.swt#3428 ·
Los mantenedores suelen responder en 1 día
Todos los issues de eclipse-platform/eclipse.platform.swt
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixPosiblemente ocupada @ItsDeadlyProgrammer la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
appsmithorg/appsmith#42471 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
code-maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
bug priority: medium Review effort [1-5]: 3 status: needs-triage type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
carlos-emr/carlos#5258 ·
Los mantenedores suelen responder en 1 día