Commit a973632
[GTK3] Remove gtk_toolbar_set_show_arrow workaround
Remove all gtk_toolbar_set_show_arrow usage from ToolBar: both the
toggle in computeSizeInPixels (added in 2012 for Bug 46025) and the
toggle in setBounds. WRAP is not supported on GTK and the show_arrow
flag was being misused to work around a GTK3 sizing bug from the
GTK 3.4 era that no longer applies on modern GTK 3.24.
The workaround in computeSizeInPixels caused two GTK state transitions
per measurement, each triggering gtk_widget_queue_resize ->
gtk_widget_queue_draw -> gdk_window_invalidate_region. When a SWT.WRAP
ToolBar sits inside a frequently-measured parent (e.g.
CTabFolder.setTopRight), this created a self-sustaining ~60 Hz repaint
loop that burns 10-25% CPU while idle.
With no remaining callers, the gtk_toolbar_set_show_arrow native
binding is removed from GTK3.java as well.
Fixes #3236
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent dbac219 commit a973632
4 files changed
Lines changed: 2 additions & 44 deletions
File tree
- bundles/org.eclipse.swt
- Eclipse SWT PI/gtk
- library
- org/eclipse/swt/internal/gtk3
- Eclipse SWT/gtk/org/eclipse/swt/widgets
Lines changed: 0 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1987 | 1987 | | |
1988 | 1988 | | |
1989 | 1989 | | |
1990 | | - | |
1991 | | - | |
1992 | | - | |
1993 | | - | |
1994 | | - | |
1995 | | - | |
1996 | | - | |
1997 | | - | |
1998 | | - | |
1999 | | - | |
2000 | 1990 | | |
2001 | 1991 | | |
2002 | 1992 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
188 | 187 | | |
189 | 188 | | |
190 | 189 | | |
| |||
Lines changed: 0 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
702 | 702 | | |
703 | 703 | | |
704 | 704 | | |
705 | | - | |
706 | | - | |
707 | | - | |
708 | | - | |
709 | | - | |
710 | 705 | | |
711 | 706 | | |
712 | 707 | | |
| |||
Lines changed: 1 addition & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
| 180 | + | |
197 | 181 | | |
198 | 182 | | |
199 | 183 | | |
| |||
609 | 593 | | |
610 | 594 | | |
611 | 595 | | |
612 | | - | |
613 | 596 | | |
614 | 597 | | |
615 | | - | |
616 | | - | |
617 | | - | |
618 | | - | |
619 | | - | |
620 | | - | |
621 | | - | |
622 | | - | |
623 | | - | |
624 | 598 | | |
625 | 599 | | |
626 | 600 | | |
| |||
0 commit comments