933 }
934
935 public void toBack() {
936 XToolkit.awtLock();
937 try {
938 if(!isOverrideRedirect()) {
939 XlibWrapper.XLowerWindow(XToolkit.getDisplay(), getWindow());
940 }else{
941 lowerOverrideRedirect();
942 }
943 }
944 finally {
945 XToolkit.awtUnlock();
946 }
947 }
948 private void lowerOverrideRedirect() {
949 //
950 // make new hash of toplevels of all windows from 'windows' hash.
951 // FIXME: do not call them "toplevel" as it is misleading.
952 //
953 HashSet toplevels = new HashSet();
954 long topl = 0, mytopl = 0;
955
956 for (XWindowPeer xp : windows) {
957 topl = getToplevelWindow( xp.getWindow() );
958 if( xp.equals( this ) ) {
959 mytopl = topl;
960 }
961 if( topl > 0 )
962 toplevels.add( Long.valueOf( topl ) );
963 }
964
965 //
966 // find in the root's tree:
967 // (1) my toplevel, (2) lowest java toplevel, (3) desktop
968 // We must enforce (3), (1), (2) order, upward;
969 // note that nautilus on the next restacking will do (1),(3),(2).
970 //
971 long laux, wDesktop = -1, wBottom = -1;
972 int iMy = -1, iDesktop = -1, iBottom = -1;
973 int i = 0;
|
933 }
934
935 public void toBack() {
936 XToolkit.awtLock();
937 try {
938 if(!isOverrideRedirect()) {
939 XlibWrapper.XLowerWindow(XToolkit.getDisplay(), getWindow());
940 }else{
941 lowerOverrideRedirect();
942 }
943 }
944 finally {
945 XToolkit.awtUnlock();
946 }
947 }
948 private void lowerOverrideRedirect() {
949 //
950 // make new hash of toplevels of all windows from 'windows' hash.
951 // FIXME: do not call them "toplevel" as it is misleading.
952 //
953 HashSet<Long> toplevels = new HashSet<>();
954 long topl = 0, mytopl = 0;
955
956 for (XWindowPeer xp : windows) {
957 topl = getToplevelWindow( xp.getWindow() );
958 if( xp.equals( this ) ) {
959 mytopl = topl;
960 }
961 if( topl > 0 )
962 toplevels.add( Long.valueOf( topl ) );
963 }
964
965 //
966 // find in the root's tree:
967 // (1) my toplevel, (2) lowest java toplevel, (3) desktop
968 // We must enforce (3), (1), (2) order, upward;
969 // note that nautilus on the next restacking will do (1),(3),(2).
970 //
971 long laux, wDesktop = -1, wBottom = -1;
972 int iMy = -1, iDesktop = -1, iBottom = -1;
973 int i = 0;
|