Skip to content

Commit 37cd926

Browse files
committed
[Gtk] Button press/release signals are Gtk 3 only
Rename the handlers to gtk3_button_press/release_event to make it obvious and simplify implementations to not try to handle Gtk 4 case as it will never end there.
1 parent 13eee4f commit 37cd926

File tree

22 files changed

+83
-144
lines changed

22 files changed

+83
-144
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -584,8 +584,8 @@ public String getText () {
584584
}
585585

586586
@Override
587-
long gtk_button_press_event (long widget, long event) {
588-
long result = super.gtk_button_press_event (widget, event);
587+
long gtk3_button_press_event (long widget, long event) {
588+
long result = super.gtk3_button_press_event (widget, event);
589589
if (result != 0) return result;
590590
if ((style & SWT.RADIO) != 0) selected = getSelection ();
591591
return result;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,12 @@ public IME getIME () {
150150
}
151151

152152
@Override
153-
long gtk_button_press_event (long widget, long event) {
153+
long gtk3_button_press_event (long widget, long event) {
154154
if (ime != null) {
155-
long result = ime.gtk_button_press_event (widget, event);
155+
long result = ime.gtk3_button_press_event (widget, event);
156156
if (result != 0) return result;
157157
}
158-
return super.gtk_button_press_event (widget, event);
158+
return super.gtk3_button_press_event (widget, event);
159159
}
160160

161161
@Override

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1438,24 +1438,20 @@ long gtk_activate (long widget) {
14381438
}
14391439

14401440
@Override
1441-
long gtk_button_press_event (long widget, long event) {
1441+
long gtk3_button_press_event (long widget, long event) {
14421442
/*
14431443
* Feature in GTK. Depending on where the user clicks, GTK prevents
14441444
* the left mouse button event from being propagated. The fix is to
14451445
* send the mouse event from the event_after handler.
14461446
*/
14471447
int [] eventButton = new int [1];
1448-
if (GTK.GTK4) {
1449-
eventButton[0] = GDK.gdk_button_event_get_button(event);
1450-
} else {
1451-
GDK.gdk_event_get_button(event, eventButton);
1452-
}
1448+
GDK.gdk_event_get_button(event, eventButton);
14531449

14541450
int eventType = GDK.gdk_event_get_event_type(event);
14551451
if (eventType == GDK.GDK_BUTTON_PRESS && eventButton[0] == 1) {
1456-
return gtk_button_press_event(widget, event, false);
1452+
return gtk3_button_press_event(widget, event, false);
14571453
}
1458-
return super.gtk_button_press_event (widget, event);
1454+
return super.gtk3_button_press_event (widget, event);
14591455
}
14601456

14611457
@Override

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
@@ -911,8 +911,8 @@ public boolean getLayoutDeferred () {
911911
}
912912

913913
@Override
914-
long gtk_button_press_event (long widget, long event) {
915-
long result = super.gtk_button_press_event (widget, event);
914+
long gtk3_button_press_event (long widget, long event) {
915+
long result = super.gtk3_button_press_event (widget, event);
916916
if (result != 0) return result;
917917
if ((state & CANVAS) != 0) {
918918
if ((style & SWT.NO_FOCUS) == 0 && hooksKeys ()) {

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
@@ -3447,8 +3447,8 @@ int gtk_gesture_release_event (long gesture, int n_press, double x, double y, lo
34473447
}
34483448

34493449
@Override
3450-
long gtk_button_press_event (long widget, long event) {
3451-
return gtk_button_press_event (widget, event, true);
3450+
long gtk3_button_press_event (long widget, long event) {
3451+
return gtk3_button_press_event (widget, event, true);
34523452
}
34533453

34543454
boolean wantDragDropDetection () {
@@ -3461,7 +3461,7 @@ boolean wantDragDropDetection () {
34613461
return hooks (SWT.DragDetect);
34623462
}
34633463

3464-
long gtk_button_press_event (long widget, long event, boolean sendMouseDown) {
3464+
long gtk3_button_press_event (long widget, long event, boolean sendMouseDown) {
34653465
mouseDown = true;
34663466

34673467
double [] eventX = new double [1];
@@ -3559,7 +3559,7 @@ long gtk_button_press_event (long widget, long event, boolean sendMouseDown) {
35593559
}
35603560

35613561
@Override
3562-
long gtk_button_release_event (long widget, long event) {
3562+
long gtk3_button_release_event (long widget, long event) {
35633563
mouseDown = false;
35643564

35653565
double[] eventX = new double[1];

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,7 +2218,7 @@ private int validateValueBounds(FieldPosition field, int value) {
22182218
}
22192219

22202220
@Override
2221-
long gtk_button_release_event (long widget, long event) {
2221+
long gtk3_button_release_event (long widget, long event) {
22222222
if (isDate() || isTime()) {
22232223
int [] eventButton = new int [1];
22242224
GDK.gdk_event_get_button(event, eventButton);
@@ -2227,7 +2227,7 @@ long gtk_button_release_event (long widget, long event) {
22272227
onTextMouseClick();
22282228
}
22292229
}
2230-
return super.gtk_button_release_event(widget, event);
2230+
return super.gtk3_button_release_event(widget, event);
22312231
}
22322232

22332233
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ long gtk_activate (long widget) {
279279
}
280280

281281
@Override
282-
long gtk_button_press_event (long widget, long event) {
282+
long gtk3_button_press_event (long widget, long event) {
283283
setFocus ();
284284
return 0;
285285
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public boolean getWideCaret () {
247247
}
248248

249249
@Override
250-
long gtk_button_press_event (long widget, long event) {
250+
long gtk3_button_press_event (long widget, long event) {
251251
if (!isInlineEnabled ()) return 0;
252252
long imHandle = imHandle ();
253253
if (imHandle != 0) GTK.gtk_im_context_reset (imHandle);

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

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -336,26 +336,18 @@ public String getText () {
336336
}
337337

338338
@Override
339-
long gtk_button_press_event (long widget, long event) {
340-
long result = super.gtk_button_press_event (widget, event);
339+
long gtk3_button_press_event (long widget, long event) {
340+
long result = super.gtk3_button_press_event (widget, event);
341341
if (result != 0) return result;
342342

343343
int eventType = GDK.gdk_event_get_event_type(event);
344344

345345
int [] eventButton = new int [1];
346-
if (GTK.GTK4) {
347-
eventButton[0] = GDK.gdk_button_event_get_button(event);
348-
} else {
349-
GDK.gdk_event_get_button(event, eventButton);
350-
}
346+
GDK.gdk_event_get_button(event, eventButton);
351347

352348
double [] eventX = new double [1];
353349
double [] eventY = new double [1];
354-
if (GTK.GTK4) {
355-
GDK.gdk_event_get_position(event, eventX, eventY);
356-
} else {
357-
GDK.gdk_event_get_coords(event, eventX, eventY);
358-
}
350+
GDK.gdk_event_get_coords(event, eventX, eventY);
359351

360352
if (eventButton[0] == 1 && eventType == GDK.GDK_BUTTON_PRESS) {
361353
if (focusIndex != -1) setFocus ();
@@ -392,25 +384,17 @@ long gtk_button_press_event (long widget, long event) {
392384
}
393385

394386
@Override
395-
long gtk_button_release_event (long widget, long event) {
396-
long result = super.gtk_button_release_event (widget, event);
387+
long gtk3_button_release_event (long widget, long event) {
388+
long result = super.gtk3_button_release_event (widget, event);
397389
if (result != 0) return result;
398390
if (focusIndex == -1) return result;
399391

400392
int [] eventButton = new int [1];
401-
if (GTK.GTK4) {
402-
eventButton[0] = GDK.gdk_button_event_get_button(event);
403-
} else {
404-
GDK.gdk_event_get_button(event, eventButton);
405-
}
393+
GDK.gdk_event_get_button(event, eventButton);
406394

407395
double [] eventX = new double [1];
408396
double [] eventY = new double [1];
409-
if (GTK.GTK4) {
410-
GDK.gdk_event_get_position(event, eventX, eventY);
411-
} else {
412-
GDK.gdk_event_get_coords(event, eventX, eventY);
413-
}
397+
GDK.gdk_event_get_coords(event, eventX, eventY);
414398

415399
if (eventButton[0] == 1) {
416400
int x = (int) eventX[0];

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

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -788,8 +788,8 @@ long gtk_changed (long widget) {
788788
}
789789

790790
@Override
791-
long gtk_button_press_event (long widget, long event) {
792-
long result = super.gtk_button_press_event (widget, event);
791+
long gtk3_button_press_event (long widget, long event) {
792+
long result = super.gtk3_button_press_event (widget, event);
793793
if (result != 0) return result;
794794
/*
795795
* Feature in GTK. In multi-select tree view there is a problem with using DnD operations while also selecting multiple items.
@@ -803,15 +803,9 @@ long gtk_button_press_event (long widget, long event) {
803803
double [] eventY = new double [1];
804804
int [] eventState = new int [1];
805805
int [] eventButton = new int [1];
806-
if (GTK.GTK4) {
807-
eventButton[0] = GDK.gdk_button_event_get_button(event);
808-
eventState[0] = GDK.gdk_event_get_modifier_state(event);
809-
GDK.gdk_event_get_position(event, eventX, eventY);
810-
} else {
811-
GDK.gdk_event_get_button(event, eventButton);
812-
GDK.gdk_event_get_state(event, eventState);
813-
GDK.gdk_event_get_coords(event, eventX, eventY);
814-
}
806+
GDK.gdk_event_get_button(event, eventButton);
807+
GDK.gdk_event_get_state(event, eventState);
808+
GDK.gdk_event_get_coords(event, eventX, eventY);
815809

816810
if ((state & DRAG_DETECT) != 0 && hooks (SWT.DragDetect) &&
817811
OS.isWayland() && eventType == GDK.GDK_BUTTON_PRESS) {
@@ -929,24 +923,15 @@ long gtk3_key_press_event (long widget, long event) {
929923
}
930924

931925
@Override
932-
long gtk_button_release_event (long widget, long event) {
926+
long gtk3_button_release_event (long widget, long event) {
933927
int [] eventState = new int [1];
934928
double [] eventX = new double [1];
935929
double [] eventY = new double [1];
936-
if (GTK.GTK4) {
937-
eventState[0] = GDK.gdk_event_get_modifier_state(event);
938-
GDK.gdk_event_get_position(event, eventX, eventY);
939-
} else {
940-
GDK.gdk_event_get_state(event, eventState);
941-
GDK.gdk_event_get_coords(event, eventX, eventY);
942-
}
930+
GDK.gdk_event_get_state(event, eventState);
931+
GDK.gdk_event_get_coords(event, eventX, eventY);
943932

944-
long eventGdkResource = gdk_event_get_surface_or_window(event);
945-
if (GTK.GTK4) {
946-
if (eventGdkResource != gtk_widget_get_surface (handle)) return 0;
947-
} else {
948-
if (eventGdkResource != GTK3.gtk_tree_view_get_bin_window (handle)) return 0;
949-
}
933+
long eventGdkResource = GDK.gdk_event_get_window(event);
934+
if (eventGdkResource != GTK3.gtk_tree_view_get_bin_window (handle)) return 0;
950935
/*
951936
* Feature in GTK. In multi-select tree view there is a problem with using DnD operations while also selecting multiple items.
952937
* When doing a DnD, GTK de-selects all other items except for the widget being dragged from. By disabling the selection function
@@ -972,7 +957,7 @@ long gtk_button_release_event (long widget, long event) {
972957
}
973958
}
974959
}
975-
return super.gtk_button_release_event (widget, event);
960+
return super.gtk3_button_release_event (widget, event);
976961
}
977962

978963
/**

0 commit comments

Comments
 (0)