@@ -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