Skip to content

Commit 37d909a

Browse files
committed
[GTK] Mark "event-after" signal handlers as v3
As per https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkwidget-event-signals they are no longer emitted in Gtk 4.x but SWT's codebase had a lot of code trying to handle these events in the Gtk 4 case.
1 parent 79e74c7 commit 37d909a

File tree

11 files changed

+33
-66
lines changed

11 files changed

+33
-66
lines changed

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Combo.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1660,7 +1660,7 @@ long gtk_draw (long widget, long cairo) {
16601660
}
16611661

16621662
@Override
1663-
long gtk_event_after (long widget, long gdkEvent) {
1663+
long gtk3_event_after (long widget, long gdkEvent) {
16641664
/*
16651665
* Feature in GTK. Depending on where the user clicks, GTK prevents
16661666
* the left mouse button event from being propagated. The fix is to
@@ -1680,13 +1680,8 @@ long gtk_event_after (long widget, long gdkEvent) {
16801680
case GDK.GDK_BUTTON_PRESS: {
16811681
int [] eventButton = new int [1];
16821682
int [] eventState = new int [1];
1683-
if (GTK.GTK4) {
1684-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
1685-
eventState[0] = GDK.gdk_event_get_modifier_state(gdkEvent);
1686-
} else {
1687-
GDK.gdk_event_get_button(gdkEvent, eventButton);
1688-
GDK.gdk_event_get_state(gdkEvent, eventState);
1689-
}
1683+
GDK.gdk_event_get_button(gdkEvent, eventButton);
1684+
GDK.gdk_event_get_state(gdkEvent, eventState);
16901685

16911686
int eventTime = GDK.gdk_event_get_time(gdkEvent);
16921687

@@ -1707,13 +1702,9 @@ long gtk_event_after (long widget, long gdkEvent) {
17071702
case GDK.GDK_FOCUS_CHANGE: {
17081703
if ((style & SWT.READ_ONLY) == 0) {
17091704
boolean [] focusIn = new boolean [1];
1710-
if (GTK.GTK4) {
1711-
focusIn[0] = GDK.gdk_focus_event_get_in(gdkEvent);
1712-
} else {
1713-
GdkEventFocus gdkEventFocus = new GdkEventFocus ();
1714-
GTK3.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof);
1715-
focusIn[0] = gdkEventFocus.in != 0;
1716-
}
1705+
GdkEventFocus gdkEventFocus = new GdkEventFocus ();
1706+
GTK3.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof);
1707+
focusIn[0] = gdkEventFocus.in != 0;
17171708
if (focusIn[0]) {
17181709
GTK.gtk_widget_set_focus_on_click(handle, false);
17191710
} else {
@@ -1723,7 +1714,7 @@ long gtk_event_after (long widget, long gdkEvent) {
17231714
break;
17241715
}
17251716
}
1726-
return super.gtk_event_after(widget, gdkEvent);
1717+
return super.gtk3_event_after(widget, gdkEvent);
17271718
}
17281719

17291720
@Override

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3716,7 +3716,7 @@ boolean checkSubwindow () {
37163716
}
37173717

37183718
@Override
3719-
long gtk_event_after (long widget, long gdkEvent) {
3719+
long gtk3_event_after (long widget, long gdkEvent) {
37203720
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
37213721
eventType = fixGdkEventTypeValues(eventType);
37223722
switch (eventType) {

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Link.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,8 @@ long gtk_draw (long widget, long cairo) {
445445
}
446446

447447
@Override
448-
long gtk_event_after (long widget, long gdkEvent) {
449-
long result = super.gtk_event_after (widget, gdkEvent);
448+
long gtk3_event_after (long widget, long gdkEvent) {
449+
long result = super.gtk3_event_after (widget, gdkEvent);
450450
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
451451
switch (eventType) {
452452
case GDK.GDK_FOCUS_CHANGE:

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -548,17 +548,13 @@ long gtk_value_changed (long range) {
548548
}
549549

550550
@Override
551-
long gtk_event_after (long widget, long gdkEvent) {
551+
long gtk3_event_after (long widget, long gdkEvent) {
552552
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
553553
eventType = Control.fixGdkEventTypeValues(eventType);
554554
switch (eventType) {
555555
case GDK.GDK_BUTTON_RELEASE: {
556556
int [] eventButton = new int [1];
557-
if (GTK.GTK4) {
558-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
559-
} else {
560-
GDK.gdk_event_get_button(gdkEvent, eventButton);
561-
}
557+
GDK.gdk_event_get_button(gdkEvent, eventButton);
562558

563559
if (eventButton[0] == 1 && detail == GTK.GTK_SCROLL_JUMP) {
564560
if (!dragSent) {
@@ -573,7 +569,7 @@ long gtk_event_after (long widget, long gdkEvent) {
573569
break;
574570
}
575571
}
576-
return super.gtk_event_after (widget, gdkEvent);
572+
return super.gtk3_event_after (widget, gdkEvent);
577573
}
578574

579575
@Override

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2016 IBM Corporation and others.
2+
* Copyright (c) 2000, 2025 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -230,17 +230,13 @@ long gtk_value_changed(long range) {
230230
}
231231

232232
@Override
233-
long gtk_event_after (long widget, long gdkEvent) {
233+
long gtk3_event_after (long widget, long gdkEvent) {
234234
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
235235
eventType = Control.fixGdkEventTypeValues(eventType);
236236
switch (eventType) {
237237
case GDK.GDK_BUTTON_RELEASE: {
238238
int [] eventButton = new int [1];
239-
if (GTK.GTK4) {
240-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
241-
} else {
242-
GDK.gdk_event_get_button(gdkEvent, eventButton);
243-
}
239+
GDK.gdk_event_get_button(gdkEvent, eventButton);
244240

245241
if (eventButton[0] == 1 && scrollType == SWT.DRAG) {
246242
if (!dragSent) {
@@ -255,7 +251,7 @@ long gtk_event_after (long widget, long gdkEvent) {
255251
break;
256252
}
257253
}
258-
return super.gtk_event_after (widget, gdkEvent);
254+
return super.gtk3_event_after (widget, gdkEvent);
259255
}
260256

261257
@Override

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Spinner.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2018 IBM Corporation and others.
2+
* Copyright (c) 2000, 2025 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -742,9 +742,9 @@ long gtk_delete_text (long widget, long start_pos, long end_pos) {
742742
}
743743

744744
@Override
745-
long gtk_event_after (long widget, long gdkEvent) {
745+
long gtk3_event_after (long widget, long gdkEvent) {
746746
if (cursor != null) setCursor (cursor.handle);
747-
return super.gtk_event_after (widget, gdkEvent);
747+
return super.gtk3_event_after (widget, gdkEvent);
748748
}
749749

750750
@Override

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableColumn.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -372,17 +372,13 @@ long gtk_clicked (long widget) {
372372
}
373373

374374
@Override
375-
long gtk_event_after (long widget, long gdkEvent) {
375+
long gtk3_event_after (long widget, long gdkEvent) {
376376
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
377377
eventType = Control.fixGdkEventTypeValues(eventType);
378378
switch (eventType) {
379379
case GDK.GDK_BUTTON_PRESS: {
380380
int [] eventButton = new int [1];
381-
if (GTK.GTK4) {
382-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
383-
} else {
384-
GDK.gdk_event_get_button(gdkEvent, eventButton);
385-
}
381+
GDK.gdk_event_get_button(gdkEvent, eventButton);
386382

387383
if (eventButton[0] == 3) {
388384
double [] eventRX = new double [1];

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1718,7 +1718,7 @@ long gtk_delete_text (long widget, long start_pos, long end_pos) {
17181718
}
17191719

17201720
@Override
1721-
long gtk_event_after (long widget, long gdkEvent) {
1721+
long gtk3_event_after (long widget, long gdkEvent) {
17221722
if (cursor != null) setCursor (cursor.handle);
17231723
/*
17241724
* Feature in GTK. The gtk-entry-select-on-focus property is a global
@@ -1732,21 +1732,17 @@ long gtk_event_after (long widget, long gdkEvent) {
17321732
switch (eventType) {
17331733
case GDK.GDK_FOCUS_CHANGE:
17341734
boolean [] focusIn = new boolean [1];
1735-
if (GTK.GTK4) {
1736-
focusIn[0] = GDK.gdk_focus_event_get_in(gdkEvent);
1737-
} else {
1738-
GdkEventFocus gdkEventFocus = new GdkEventFocus ();
1739-
GTK3.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof);
1740-
focusIn[0] = gdkEventFocus.in != 0;
1741-
}
1735+
GdkEventFocus gdkEventFocus = new GdkEventFocus ();
1736+
GTK3.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof);
1737+
focusIn[0] = gdkEventFocus.in != 0;
17421738
if (focusIn[0]) {
17431739
long settings = GTK.gtk_settings_get_default ();
17441740
OS.g_object_set (settings, GTK.gtk_entry_select_on_focus, true, 0);
17451741
}
17461742
break;
17471743
}
17481744
}
1749-
return super.gtk_event_after (widget, gdkEvent);
1745+
return super.gtk3_event_after (widget, gdkEvent);
17501746
}
17511747

17521748
@Override

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ToolItem.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -787,17 +787,13 @@ void gtk4_enter_event(long controller, double x, double y, long event) {
787787
}
788788

789789
@Override
790-
long gtk_event_after (long widget, long gdkEvent) {
790+
long gtk3_event_after (long widget, long gdkEvent) {
791791
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
792792
eventType = Control.fixGdkEventTypeValues(eventType);
793793
switch (eventType) {
794794
case GDK.GDK_BUTTON_PRESS: {
795795
int [] eventButton = new int [1];
796-
if (GTK.GTK4) {
797-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
798-
} else {
799-
GDK.gdk_event_get_button(gdkEvent, eventButton);
800-
}
796+
GDK.gdk_event_get_button(gdkEvent, eventButton);
801797

802798
if (eventButton[0] == 3) {
803799
double [] eventRX = new double [1];

bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeColumn.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -369,17 +369,13 @@ int gtk_gesture_press_event(long gesture, int n_press, double x, double y, long
369369
}
370370

371371
@Override
372-
long gtk_event_after (long widget, long gdkEvent) {
372+
long gtk3_event_after (long widget, long gdkEvent) {
373373
int eventType = GDK.gdk_event_get_event_type(gdkEvent);
374374
eventType = Control.fixGdkEventTypeValues(eventType);
375375
switch (eventType) {
376376
case GDK.GDK_BUTTON_PRESS: {
377377
int [] eventButton = new int [1];
378-
if (GTK.GTK4) {
379-
eventButton[0] = GDK.gdk_button_event_get_button(gdkEvent);
380-
} else {
381-
GDK.gdk_event_get_button(gdkEvent, eventButton);
382-
}
378+
GDK.gdk_event_get_button(gdkEvent, eventButton);
383379

384380
double [] eventRX = new double [1];
385381
double [] eventRY = new double [1];

0 commit comments

Comments
 (0)