Skip to content

Commit d884e6b

Browse files
committed
[GTK] Events "key-press"/"key-release" are Gtk 3 only
On Gtk 4 that is handled via Widget.keyPressReleaseProc method. Simplifies Gtk3 implementation to not needlessly try to be Gtk 4 safe and also makes it clear that these handlers are for Gtk 3 only by just reading the name.
1 parent 37d909a commit d884e6b

File tree

17 files changed

+52
-79
lines changed

17 files changed

+52
-79
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2023 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
@@ -674,8 +674,8 @@ boolean gtk4_key_press_event(long controller, int keyval, int keycode, int state
674674
}
675675

676676
@Override
677-
long gtk_key_press_event (long widget, long event) {
678-
long result = super.gtk_key_press_event (widget, event);
677+
long gtk3_key_press_event (long widget, long event) {
678+
long result = super.gtk3_key_press_event (widget, event);
679679
if (result != 0) return result;
680680
if ((style & SWT.RADIO) != 0) {
681681
selected = getSelection ();

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,8 +1773,8 @@ long gtk_insert_text (long widget, long new_text, long new_text_length, long pos
17731773
}
17741774

17751775
@Override
1776-
long gtk_key_press_event (long widget, long event) {
1777-
long result = super.gtk_key_press_event (widget, event);
1776+
long gtk3_key_press_event (long widget, long event) {
1777+
long result = super.gtk3_key_press_event (widget, event);
17781778
if (result != 0) {
17791779
gdkEventKey = 0;
17801780
fixIM ();
@@ -1786,11 +1786,7 @@ long gtk_key_press_event (long widget, long event) {
17861786
int oldIndex = GTK.gtk_combo_box_get_active (handle);
17871787
int newIndex = oldIndex;
17881788
int [] eventKeyval = new int [1];
1789-
if (GTK.GTK4) {
1790-
eventKeyval[0] = GDK.gdk_key_event_get_keyval(event);
1791-
} else {
1792-
GDK.gdk_event_get_keyval(event, eventKeyval);
1793-
}
1789+
GDK.gdk_event_get_keyval(event, eventKeyval);
17941790

17951791
switch (eventKeyval[0]) {
17961792
case GDK.GDK_Down:

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -915,8 +915,8 @@ boolean gtk4_key_press_event(long controller, int keyval, int keycode, int state
915915
}
916916

917917
@Override
918-
long gtk_key_press_event (long widget, long event) {
919-
long result = super.gtk_key_press_event (widget, event);
918+
long gtk3_key_press_event (long widget, long event) {
919+
long result = super.gtk3_key_press_event (widget, event);
920920
if (result != 0) return result;
921921
/*
922922
* Feature in GTK. The default behavior when the return key

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3994,7 +3994,7 @@ boolean gtk4_key_press_event(long controller, int keyval, int keycode, int state
39943994
}
39953995

39963996
@Override
3997-
long gtk_key_press_event (long widget, long event) {
3997+
long gtk3_key_press_event (long widget, long event) {
39983998
int [] eventKeyval = new int [1];
39993999
GDK.gdk_event_get_keyval(event, eventKeyval);
40004000

@@ -4021,7 +4021,7 @@ long gtk_key_press_event (long widget, long event) {
40214021
if (translateTraversal (event)) return 1;
40224022
// widget could be disposed at this point
40234023
if (isDisposed ()) return 0;
4024-
return super.gtk_key_press_event (widget, event);
4024+
return super.gtk3_key_press_event (widget, event);
40254025
}
40264026

40274027
@Override
@@ -4037,13 +4037,13 @@ void gtk4_key_release_event(long controller, int keyval, int keycode, int state,
40374037
}
40384038

40394039
@Override
4040-
long gtk_key_release_event (long widget, long event) {
4040+
long gtk3_key_release_event (long widget, long event) {
40414041
if (!hasFocus ()) return 0;
40424042
long imHandle = imHandle ();
40434043
if (imHandle != 0) {
40444044
if (GTK3.gtk_im_context_filter_keypress(imHandle, event)) return 1;
40454045
}
4046-
return super.gtk_key_release_event (widget, event);
4046+
return super.gtk3_key_release_event (widget, event);
40474047
}
40484048

40494049
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2025,7 +2025,7 @@ boolean gtk4_key_press_event(long controller, int keyval, int keycode, int state
20252025
}
20262026

20272027
@Override
2028-
long gtk_key_press_event (long widget, long event) {
2028+
long gtk3_key_press_event (long widget, long event) {
20292029
if (!isReadOnly () && (isTime () || isDate ())) {
20302030
int [] key = new int[1];
20312031
GDK.gdk_event_get_keyval(event, key);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ public int getSpacing () {
312312
}
313313

314314
@Override
315-
long gtk_key_press_event (long widget, long event) {
315+
long gtk3_key_press_event (long widget, long event) {
316316
if (!hasFocus ()) return 0;
317-
long result = super.gtk_key_press_event (widget, event);
317+
long result = super.gtk3_key_press_event (widget, event);
318318
if (result != 0) return result;
319319
int index = 0;
320320
while (index < itemCount) {

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
@@ -487,8 +487,8 @@ boolean gtk4_key_press_event(long controller, int keyval, int keycode, int state
487487
}
488488

489489
@Override
490-
long gtk_key_press_event (long widget, long eventPtr) {
491-
long result = super.gtk_key_press_event (widget, eventPtr);
490+
long gtk3_key_press_event (long widget, long eventPtr) {
491+
long result = super.gtk3_key_press_event (widget, eventPtr);
492492
if (result != 0) return result;
493493
if (focusIndex == -1) return result;
494494

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -920,16 +920,12 @@ long gtk_row_activated (long tree, long path, long column) {
920920

921921

922922
@Override
923-
long gtk_key_press_event (long widget, long event) {
923+
long gtk3_key_press_event (long widget, long event) {
924924
int [] key = new int [1];
925-
if (GTK.GTK4) {
926-
key[0] = GDK.gdk_key_event_get_keyval(event);
927-
} else {
928-
GDK.gdk_event_get_keyval(event, key);
929-
}
925+
GDK.gdk_event_get_keyval(event, key);
930926

931927
keyPressDefaultSelectionHandler (event, key[0]);
932-
return super.gtk_key_press_event (widget, event);
928+
return super.gtk3_key_press_event (widget, event);
933929
}
934930

935931
@Override

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2021 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
@@ -449,8 +449,8 @@ long gtk_focus_in_event(long widget, long event) {
449449
}
450450

451451
@Override
452-
long gtk_key_press_event(long widget, long eventPtr) {
453-
long result = super.gtk_key_press_event(widget, eventPtr);
452+
long gtk3_key_press_event(long widget, long eventPtr) {
453+
long result = super.gtk3_key_press_event(widget, eventPtr);
454454
if (result != 0) return result;
455455

456456
int[] key = new int[1], state = new int[1];

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1783,7 +1783,7 @@ long gtk_motion_notify_event (long widget, long event) {
17831783
}
17841784

17851785
@Override
1786-
long gtk_key_press_event (long widget, long event) {
1786+
long gtk3_key_press_event (long widget, long event) {
17871787
if (widget == shellHandle) {
17881788
/* Stop menu mnemonics when the shell is disabled */
17891789
if ((state & DISABLED) != 0) return 1;
@@ -1812,15 +1812,15 @@ long gtk_key_press_event (long widget, long event) {
18121812

18131813
int mask = GTK.gtk_accelerator_get_default_mod_mask ();
18141814
if (key[0] == keyval [0] && (state[0] & mask) == (mods [0] & mask)) {
1815-
return focusControl.gtk_key_press_event (focusControl.focusHandle (), event);
1815+
return focusControl.gtk3_key_press_event (focusControl.focusHandle (), event);
18161816
}
18171817
}
18181818
}
18191819
}
18201820
}
18211821
return 0;
18221822
}
1823-
return super.gtk_key_press_event (widget, event);
1823+
return super.gtk3_key_press_event (widget, event);
18241824
}
18251825

18261826
@Override

0 commit comments

Comments
 (0)