Skip to content

Commit 6171cf3

Browse files
committed
[Gtk] Stop calling gdk_seat_grab/ungrab on Gtk 4
These are Gdk 3.x functions that are gone in 4.x
1 parent b829b31 commit 6171cf3

File tree

1 file changed

+9
-18
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets

1 file changed

+9
-18
lines changed

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

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -618,20 +618,15 @@ void bringToTop (boolean force) {
618618
OS.XSetInputFocus (xDisplay, xWindow, OS.RevertToParent, OS.CurrentTime);
619619
GDK.gdk_x11_display_error_trap_pop_ignored(gdkDisplay);
620620
} else {
621-
long gdkDisplay;
622-
if (GTK.GTK4) {
623-
gdkDisplay = GDK.gdk_surface_get_display(gdkResource);
624-
} else {
625-
GTK3.gtk_grab_add(shellHandle);
626-
gdkDisplay = GDK.gdk_window_get_display(gdkResource);
627-
}
628-
long seat = GDK.gdk_display_get_default_seat(gdkDisplay);
629621
if (GTK.GTK4) {
630622
GTK4.gtk_window_present(shellHandle);
631623
} else {
624+
GTK3.gtk_grab_add(shellHandle);
625+
long gdkDisplay = GDK.gdk_window_get_display(gdkResource);
626+
long seat = GDK.gdk_display_get_default_seat(gdkDisplay);
632627
GDK.gdk_window_show(gdkResource);
628+
GDK.gdk_seat_grab(seat, gdkResource, GDK.GDK_SEAT_CAPABILITY_ALL, true, 0, 0, 0, 0);
633629
}
634-
GDK.gdk_seat_grab(seat, gdkResource, GDK.GDK_SEAT_CAPABILITY_ALL, true, 0, 0, 0, 0);
635630
/*
636631
* Bug 541185: Hover over to open Javadoc popup will make the popup
637632
* close instead of gaining focus due to an extra focus out signal sent
@@ -3350,17 +3345,13 @@ void checkAndUngrabFocus () {
33503345
* assumes that GdkSeat are the same for parent and child, which seems to be the case.
33513346
*/
33523347
if (requiresUngrab() && !isMappedToPopup() && grabbedFocus) {
3353-
long gdkResource, display;
3354-
if (GTK.GTK4) {
3355-
gdkResource = gtk_widget_get_surface (shellHandle);
3356-
display = GDK.gdk_surface_get_display(gdkResource);
3357-
} else {
3358-
gdkResource = gtk_widget_get_window (shellHandle);
3359-
display = GDK.gdk_window_get_display(gdkResource);
3348+
if (!GTK.GTK4) {
3349+
long gdkResource = gtk_widget_get_window (shellHandle);
3350+
long display = GDK.gdk_window_get_display(gdkResource);
33603351
GTK3.gtk_grab_remove(shellHandle);
3352+
long seat = GDK.gdk_display_get_default_seat(display);
3353+
GDK.gdk_seat_ungrab(seat);
33613354
}
3362-
long seat = GDK.gdk_display_get_default_seat(display);
3363-
GDK.gdk_seat_ungrab(seat);
33643355
grabbedFocus = false;
33653356
}
33663357
}

0 commit comments

Comments
 (0)