mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2026-01-26 02:10:49 +01:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1c860ae41 | ||
|
|
9af144c09a | ||
|
|
0325d0754d |
@@ -59,10 +59,8 @@ function create_image_bundle {
|
||||
|
||||
libc_type_suffix=''
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
|
||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
|
||||
@@ -72,13 +70,14 @@ function create_image_bundle {
|
||||
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||
$JSDK/bin/jlink \
|
||||
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
|
||||
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||
fi
|
||||
|
||||
@@ -59,10 +59,8 @@ function create_image_bundle {
|
||||
|
||||
libc_type_suffix=''
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
|
||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix}b${build_number}
|
||||
@@ -72,13 +70,14 @@ function create_image_bundle {
|
||||
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||
$JSDK/bin/jlink \
|
||||
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
|
||||
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||
fi
|
||||
|
||||
@@ -47,10 +47,8 @@ function create_image_bundle {
|
||||
|
||||
libc_type_suffix=''
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
|
||||
if is_musl; then libc_type_suffix='musl-' ; fi
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix}b${build_number}
|
||||
@@ -60,13 +58,14 @@ function create_image_bundle {
|
||||
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
|
||||
$JSDK/bin/jlink \
|
||||
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
|
||||
mv release "$IMAGES_DIR"/"$__root_dir"/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
|
||||
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
|
||||
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
|
||||
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
|
||||
fi
|
||||
|
||||
@@ -51,8 +51,6 @@ function create_image_bundle {
|
||||
__modules=$4
|
||||
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
tmp=.bundle.$$.tmp
|
||||
mkdir "$tmp" || do_exit $?
|
||||
@@ -67,13 +65,14 @@ function create_image_bundle {
|
||||
echo Running jlink...
|
||||
"$JSDK"/bin/jlink \
|
||||
--module-path "$__modules_path" --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
|
||||
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
|
||||
mv release $JRE_CONTENTS/Home/release
|
||||
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
|
||||
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/server/*.jsa $JRE_CONTENTS/Home/lib/server
|
||||
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
|
||||
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
|
||||
fi
|
||||
@@ -89,7 +88,7 @@ function create_image_bundle {
|
||||
|
||||
echo Creating "$JBR".tar.gz ...
|
||||
# Normalize timestamp
|
||||
find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
|
||||
#find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
|
||||
|
||||
(cd "$tmp" &&
|
||||
find "$__root_dir" -print0 | LC_ALL=C sort -z | \
|
||||
|
||||
@@ -75,6 +75,7 @@ function create_image_bundle {
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
|
||||
@@ -52,8 +52,6 @@ function create_image_bundle {
|
||||
__modules=$4
|
||||
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
|
||||
@@ -61,13 +59,14 @@ function create_image_bundle {
|
||||
echo Running jlink ...
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path $__modules_path --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules $__modules --output $__root_dir || do_exit $?
|
||||
--add-modules $__modules --output $__root_dir || do_exit $?
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
|
||||
@@ -48,8 +48,6 @@ function create_image_bundle {
|
||||
__modules=$4
|
||||
|
||||
fastdebug_infix=''
|
||||
__cds_opt=''
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
|
||||
|
||||
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
|
||||
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
|
||||
@@ -57,13 +55,14 @@ function create_image_bundle {
|
||||
echo Running jlink ...
|
||||
${JSDK}/bin/jlink \
|
||||
--module-path $__modules_path --no-man-pages --compress=2 \
|
||||
$__cds_opt --add-modules $__modules --output $__root_dir || do_exit $?
|
||||
--add-modules $__modules --output $__root_dir || do_exit $?
|
||||
|
||||
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
|
||||
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
|
||||
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
|
||||
mv release $__root_dir/release
|
||||
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
|
||||
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
|
||||
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
|
||||
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
|
||||
done
|
||||
|
||||
@@ -1033,16 +1033,14 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
|
||||
!fd.is_static() &&
|
||||
!m->is_object_initializer());
|
||||
|
||||
if (!AllowEnhancedClassRedefinition || !m->name()->equals("$$ha$clinit")) {
|
||||
if (is_initialized_static_final_update || is_initialized_instance_final_update) {
|
||||
ResourceMark rm(THREAD);
|
||||
stringStream ss;
|
||||
ss.print("Update to %s final field %s.%s attempted from a different method (%s) than the initializer method %s ",
|
||||
is_static ? "static" : "non-static", resolved_klass->external_name(), fd.name()->as_C_string(),
|
||||
m->name()->as_C_string(),
|
||||
is_static ? "<clinit>" : "<init>");
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalAccessError(), ss.as_string());
|
||||
}
|
||||
if (is_initialized_static_final_update || is_initialized_instance_final_update) {
|
||||
ResourceMark rm(THREAD);
|
||||
stringStream ss;
|
||||
ss.print("Update to %s final field %s.%s attempted from a different method (%s) than the initializer method %s ",
|
||||
is_static ? "static" : "non-static", resolved_klass->external_name(), fd.name()->as_C_string(),
|
||||
m->name()->as_C_string(),
|
||||
is_static ? "<clinit>" : "<init>");
|
||||
THROW_MSG(vmSymbols::java_lang_IllegalAccessError(), ss.as_string());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1151,6 +1151,6 @@ class CAccessibility implements PropertyChangeListener {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}, c, false);
|
||||
}, c);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,9 +45,6 @@
|
||||
// keyboard layout
|
||||
static NSString *kbdLayout;
|
||||
|
||||
// workaround for JBR-6704
|
||||
static unichar lastCtrlCombo;
|
||||
|
||||
@interface AWTView()
|
||||
@property (retain) CDropTarget *_dropTarget;
|
||||
@property (retain) CDragSource *_dragSource;
|
||||
@@ -90,7 +87,6 @@ extern bool isSystemShortcut_NextWindowInApplication(NSUInteger modifiersMask, i
|
||||
fInputMethodLOCKABLE = NULL;
|
||||
fKeyEventsNeeded = NO;
|
||||
fProcessingKeystroke = NO;
|
||||
lastCtrlCombo = 0;
|
||||
|
||||
fEnablePressAndHold = shouldUsePressAndHold();
|
||||
fInPressAndHold = NO;
|
||||
@@ -213,31 +209,24 @@ extern bool isSystemShortcut_NextWindowInApplication(NSUInteger modifiersMask, i
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
}
|
||||
|
||||
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
|
||||
NSString *checkForInputManagerInMouseDown =
|
||||
[PropertiesUtilities
|
||||
javaSystemPropertyForKey:@"apple.awt.checkForInputManagerInMouseDown"
|
||||
withEnv:env];
|
||||
if ([@"true" isCaseInsensitiveLike:checkForInputManagerInMouseDown]) {
|
||||
NSInputManager *inputManager = [NSInputManager currentInputManager];
|
||||
if ([inputManager wantsToHandleMouseEvents]) {
|
||||
NSInputManager *inputManager = [NSInputManager currentInputManager];
|
||||
if ([inputManager wantsToHandleMouseEvents]) {
|
||||
#if IM_DEBUG
|
||||
NSLog(@"-> IM wants to handle event");
|
||||
NSLog(@"-> IM wants to handle event");
|
||||
#endif
|
||||
if ([inputManager handleMouseEvent:event]) {
|
||||
#if IM_DEBUG
|
||||
NSLog(@"-> Event was handled.");
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
if (![inputManager handleMouseEvent:event]) {
|
||||
[self deliverJavaMouseEvent: event];
|
||||
} else {
|
||||
#if IM_DEBUG
|
||||
NSLog(@"-> IM does not want to handle event");
|
||||
NSLog(@"-> Event was handled.");
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
#if IM_DEBUG
|
||||
NSLog(@"-> IM does not want to handle event");
|
||||
#endif
|
||||
[self deliverJavaMouseEvent: event];
|
||||
}
|
||||
|
||||
[self deliverJavaMouseEvent:event];
|
||||
}
|
||||
|
||||
- (void) mouseUp: (NSEvent *)event {
|
||||
@@ -376,12 +365,6 @@ static void debugPrintNSEvent(NSEvent* event, const char* comment) {
|
||||
|
||||
NSString *eventCharacters = [event characters];
|
||||
|
||||
if (([event modifierFlags] & NSControlKeyMask) && [eventCharacters length] == 1) {
|
||||
lastCtrlCombo = [eventCharacters characterAtIndex:0];
|
||||
} else {
|
||||
lastCtrlCombo = 0;
|
||||
}
|
||||
|
||||
// Allow TSM to look at the event and potentially send back NSTextInputClient messages.
|
||||
[self interpretKeyEvents:[NSArray arrayWithObject:event]];
|
||||
|
||||
@@ -1157,14 +1140,6 @@ static jclass jc_CInputMethod = NULL;
|
||||
fprintf(stderr, "AWTView InputMethod Selector Called : [insertText]: %s\n", [aString UTF8String]);
|
||||
#endif // IM_DEBUG
|
||||
|
||||
NSMutableString * useString = [self parseString:aString];
|
||||
|
||||
// See JBR-6704
|
||||
if (lastCtrlCombo && !fProcessingKeystroke && [useString length] == 1 && [useString characterAtIndex:0] == lastCtrlCombo) {
|
||||
lastCtrlCombo = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (fInputMethodLOCKABLE == NULL) {
|
||||
return;
|
||||
}
|
||||
@@ -1177,6 +1152,8 @@ static jclass jc_CInputMethod = NULL;
|
||||
// text, or 'text in progress'. We also need to send the event if we get an insert text out of the blue!
|
||||
// (i.e., when the user uses the Character palette or Inkwell), or when the string to insert is a complex
|
||||
// Unicode value.
|
||||
|
||||
NSMutableString * useString = [self parseString:aString];
|
||||
BOOL usingComplexIM = [self hasMarkedText] || !fProcessingKeystroke;
|
||||
|
||||
#ifdef IM_DEBUG
|
||||
@@ -1186,7 +1163,6 @@ static jclass jc_CInputMethod = NULL;
|
||||
NSLog(@"insertText kbdlayout %@ ",(NSString *)kbdLayout);
|
||||
|
||||
NSLog(@"utf8Length %lu utf16Length %lu", (unsigned long)utf8Length, (unsigned long)utf16Length);
|
||||
NSLog(@"hasMarkedText: %s, fProcessingKeyStroke: %s", [self hasMarkedText] ? "YES" : "NO", fProcessingKeystroke ? "YES" : "NO");
|
||||
#endif // IM_DEBUG
|
||||
|
||||
JNIEnv *env = [ThreadUtilities getJNIEnv];
|
||||
@@ -1202,7 +1178,7 @@ static jclass jc_CInputMethod = NULL;
|
||||
|
||||
if (usingComplexIM) {
|
||||
DECLARE_METHOD(jm_insertText, jc_CInputMethod, "insertText", "(Ljava/lang/String;)V");
|
||||
jstring insertedText = NSStringToJavaString(env, useString);
|
||||
jstring insertedText = NSStringToJavaString(env, useString);
|
||||
(*env)->CallVoidMethod(env, fInputMethodLOCKABLE, jm_insertText, insertedText);
|
||||
CHECK_EXCEPTION();
|
||||
(*env)->DeleteLocalRef(env, insertedText);
|
||||
|
||||
@@ -655,9 +655,9 @@ Java_sun_java2d_metal_MTLRenderQueue_flushBuffer
|
||||
CHECK_PREVIOUS_OP(MTL_OP_OTHER);
|
||||
jlong pConfigInfo = NEXT_LONG(b);
|
||||
CONTINUE_IF_NULL(mtlc);
|
||||
[mtlc commitCommandBuffer:YES display:NO];
|
||||
MTLTR_FreeGlyphCacheAA();
|
||||
MTLTR_FreeGlyphCacheLCD();
|
||||
[mtlc.encoderManager endEncoder];
|
||||
MTLGC_DestroyMTLGraphicsConfig(pConfigInfo);
|
||||
mtlc = NULL;
|
||||
break;
|
||||
|
||||
@@ -122,9 +122,6 @@ public class FileFontStrike extends PhysicalStrike {
|
||||
|
||||
private static boolean useNativesForRotatedText;
|
||||
|
||||
// force pipeline of text rendering use FreeType
|
||||
private static boolean forceFreeTypeRendering;
|
||||
|
||||
private static boolean useDirectWrite;
|
||||
|
||||
// DirectWrite rendering options' values can be found in MSDN documentation
|
||||
@@ -157,7 +154,6 @@ public class FileFontStrike extends PhysicalStrike {
|
||||
public Void run() {
|
||||
String rotatedProperty = System.getProperty("rotated.text.native.rendering");
|
||||
useNativesForRotatedText = rotatedProperty == null || Boolean.parseBoolean(rotatedProperty);
|
||||
forceFreeTypeRendering = Boolean.getBoolean("freetype.font.rendering");
|
||||
useDirectWrite = Boolean.getBoolean("directwrite.font.rendering") && isDirectWriteAvailable();
|
||||
if (useDirectWrite) {
|
||||
String options = System.getProperty("directwrite.font.rendering.options");
|
||||
@@ -309,8 +305,8 @@ public class FileFontStrike extends PhysicalStrike {
|
||||
pts = Math.abs(matrix[1]);
|
||||
}
|
||||
intPtSize = (int) pts;
|
||||
useNatives = !forceFreeTypeRendering && (rotation == 0 || rotation > 0 && useNativesForRotatedText) &&
|
||||
pts >= 3.0 && pts <= 100.0 && (getImageWithAdvance || desc.fmHint == INTVAL_FRACTIONALMETRICS_ON) &&
|
||||
useNatives = (rotation == 0 || rotation > 0 && useNativesForRotatedText) && pts >= 3.0 && pts <= 100.0 &&
|
||||
(getImageWithAdvance || desc.fmHint == INTVAL_FRACTIONALMETRICS_ON) &&
|
||||
!((TrueTypeFont)fileFont).useEmbeddedBitmapsForSize(intPtSize) &&
|
||||
!((TrueTypeFont)fileFont).hasCOLRTable();
|
||||
}
|
||||
|
||||
@@ -111,9 +111,9 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
WLComponentPeer(Component target) {
|
||||
this.target = target;
|
||||
this.background = target.getBackground();
|
||||
Dimension size = constrainSize(target.getBounds().getSize());
|
||||
width = size.width;
|
||||
height = size.height;
|
||||
Rectangle bounds = target.getBounds();
|
||||
width = bounds.width;
|
||||
height = bounds.height;
|
||||
final WLGraphicsConfig config = (WLGraphicsConfig)target.getGraphicsConfiguration();
|
||||
wlBufferScale = config.getScale();
|
||||
surfaceData = config.createSurfaceData(this);
|
||||
@@ -411,7 +411,6 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
|
||||
public void setBounds(int newX, int newY, int newWidth, int newHeight, int op) {
|
||||
Dimension newSize = constrainSize(newWidth, newHeight);
|
||||
boolean positionChanged = (op == SET_BOUNDS || op == SET_LOCATION);
|
||||
if (positionChanged && isVisible()) {
|
||||
// Wayland provides the ability to programmatically change the location of popups,
|
||||
@@ -429,9 +428,9 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
WLToolkit.postEvent(new ComponentEvent(getTarget(), ComponentEvent.COMPONENT_MOVED));
|
||||
}
|
||||
|
||||
boolean sizeChanged = (op == SET_BOUNDS || op == SET_SIZE || op == SET_CLIENT_SIZE);
|
||||
boolean sizeChanged = (op == SET_BOUNDS || op == SET_SIZE || op == SET_CLIENT_SIZE);
|
||||
if (sizeChanged) {
|
||||
setSizeTo(newSize.width, newSize.height);
|
||||
setSizeTo(newWidth, newHeight);
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
log.fine(String.format("%s is resizing its buffer to %dx%d with %dx scale",
|
||||
this, getBufferWidth(), getBufferHeight(), getBufferScale()));
|
||||
@@ -449,9 +448,8 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
|
||||
private void setSizeTo(int newWidth, int newHeight) {
|
||||
synchronized (dataLock) {
|
||||
Dimension newSize = constrainSize(newWidth, newHeight);
|
||||
this.width = newSize.width;
|
||||
this.height = newSize.height;
|
||||
this.width = newWidth;
|
||||
this.height = newHeight;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -682,13 +680,11 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
|
||||
void setMinimumSizeTo(Dimension minSize) {
|
||||
Dimension constrainedSize = constrainSize(minSize);
|
||||
performLocked(() -> nativeSetMinimumSize(nativePtr, constrainedSize.width, constrainedSize.height));
|
||||
performLocked(() -> nativeSetMinimumSize(nativePtr, minSize.width, minSize.height));
|
||||
}
|
||||
|
||||
void setMaximumSizeTo(Dimension maxSize) {
|
||||
Dimension constrainedSize = constrainSize(maxSize);
|
||||
performLocked(() -> nativeSetMaximumSize(nativePtr, constrainedSize.width, constrainedSize.height));
|
||||
performLocked(() -> nativeSetMaximumSize(nativePtr, maxSize.width, maxSize.height));
|
||||
}
|
||||
|
||||
void showWindowMenu(int x, int y) {
|
||||
@@ -1213,25 +1209,6 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
}
|
||||
|
||||
private static Dimension getMaxBufferBounds() {
|
||||
// Need to limit the maximum size of the window so that the creation of the underlying
|
||||
// buffers for it may succeed at least in theory. A window that is too large may crash
|
||||
// JVM or even the window manager.
|
||||
Dimension bounds = WLGraphicsEnvironment.getSingleInstance().getTotalDisplayBounds();
|
||||
bounds.width *= 2;
|
||||
bounds.height *= 2;
|
||||
return bounds;
|
||||
}
|
||||
|
||||
private Dimension constrainSize(int width, int height) {
|
||||
Dimension maxBounds = getMaxBufferBounds();
|
||||
return new Dimension(Math.min(width, maxBounds.width), Math.min(height, maxBounds.height));
|
||||
}
|
||||
|
||||
private Dimension constrainSize(Dimension bounds) {
|
||||
return constrainSize(bounds.width, bounds.height);
|
||||
}
|
||||
|
||||
// The following methods exist to prevent native code from using stale pointers (pointing to memory already
|
||||
// deallocated). This includes pointers to object allocated by the toolkit directly, as well as those allocated by
|
||||
// Wayland client API.
|
||||
|
||||
@@ -188,20 +188,24 @@ public class WLGraphicsDevice extends GraphicsDevice {
|
||||
}
|
||||
|
||||
int getResolution() {
|
||||
// must match the horizontal resolution to pass tests
|
||||
return getResolutionX(defaultConfig);
|
||||
Rectangle bounds = defaultConfig.getBounds();
|
||||
if (bounds.width == 0 || bounds.height == 0) return 0;
|
||||
|
||||
double diagonalPixel = Math.sqrt(bounds.width * bounds.width + bounds.height * bounds.height);
|
||||
double diagonalMm = Math.sqrt(widthMm * widthMm + heightMm * heightMm);
|
||||
return (int) (diagonalPixel / diagonalMm * MM_IN_INCH);
|
||||
}
|
||||
|
||||
int getResolutionX(WLGraphicsConfig config) {
|
||||
Rectangle bounds = config.getBounds();
|
||||
if (bounds.width == 0) return 0;
|
||||
return (int)((double)bounds.width * MM_IN_INCH / widthMm);
|
||||
return (int)((double)bounds.width / widthMm * MM_IN_INCH);
|
||||
}
|
||||
|
||||
int getResolutionY(WLGraphicsConfig config) {
|
||||
Rectangle bounds = config.getBounds();
|
||||
if (bounds.height == 0) return 0;
|
||||
return (int)((double)bounds.height * MM_IN_INCH / heightMm);
|
||||
return (int)((double)bounds.height / heightMm * MM_IN_INCH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,16 +26,15 @@
|
||||
|
||||
package sun.awt.wl;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.GraphicsDevice;
|
||||
import java.awt.Rectangle;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import sun.awt.SunToolkit;
|
||||
import sun.java2d.SunGraphicsEnvironment;
|
||||
import sun.java2d.SurfaceManagerFactory;
|
||||
import sun.java2d.UnixSurfaceManagerFactory;
|
||||
@@ -59,8 +58,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
AccessController.doPrivileged(
|
||||
(PrivilegedAction<String>) () -> System.getProperty("sun.java2d.vulkan.deviceNumber", "0"));
|
||||
|
||||
private final Dimension totalDisplayBounds = new Dimension();
|
||||
|
||||
static {
|
||||
vulkanRequested = "true".equalsIgnoreCase(vulkanOption);
|
||||
try {
|
||||
@@ -160,8 +157,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
}
|
||||
}
|
||||
|
||||
updateTotalDisplayBounds();
|
||||
|
||||
// Skip notification during the initial configuration events
|
||||
if (WLToolkit.isInitialized()) {
|
||||
displayChanged();
|
||||
@@ -203,7 +198,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
}
|
||||
}
|
||||
|
||||
updateTotalDisplayBounds();
|
||||
displayChanged();
|
||||
}
|
||||
|
||||
@@ -230,24 +224,4 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Dimension getTotalDisplayBounds() {
|
||||
synchronized (totalDisplayBounds) {
|
||||
return totalDisplayBounds.getSize();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTotalDisplayBounds() {
|
||||
synchronized (devices) {
|
||||
Rectangle virtualBounds = new Rectangle();
|
||||
for (GraphicsDevice gd : devices) {
|
||||
for (GraphicsConfiguration gc : gd.getConfigurations()) {
|
||||
virtualBounds = virtualBounds.union(gc.getBounds());
|
||||
}
|
||||
}
|
||||
synchronized (totalDisplayBounds) {
|
||||
totalDisplayBounds.setSize(virtualBounds.getSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,9 +32,7 @@ import sun.java2d.wl.WLSMSurfaceData;
|
||||
import sun.util.logging.PlatformLogger;
|
||||
|
||||
import java.awt.Transparency;
|
||||
import java.awt.color.ColorSpace;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.awt.image.DataBuffer;
|
||||
import java.awt.image.DirectColorModel;
|
||||
|
||||
/**
|
||||
@@ -59,9 +57,11 @@ public class WLSMGraphicsConfig extends WLGraphicsConfig {
|
||||
boolean translucencyCapable) {
|
||||
super(device, width, height, scale);
|
||||
this.translucencyCapable = translucencyCapable;
|
||||
this.colorModel = colorModelFor(translucencyCapable ? Transparency.TRANSLUCENT : Transparency.OPAQUE);
|
||||
// Note: GNOME Shell definitely expects alpha values to be pre-multiplied
|
||||
this.surfaceType = translucencyCapable ? SurfaceType.IntArgbPre : SurfaceType.IntRgb;
|
||||
this.colorModel
|
||||
= translucencyCapable
|
||||
? new DirectColorModel(32, 0xff0000, 0xff00, 0xff, 0xff000000)
|
||||
: new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
|
||||
this.surfaceType = translucencyCapable ? SurfaceType.IntArgb : SurfaceType.IntRgb;
|
||||
}
|
||||
|
||||
public static WLSMGraphicsConfig getConfig(WLGraphicsDevice device,
|
||||
@@ -87,23 +87,12 @@ public class WLSMGraphicsConfig extends WLGraphicsConfig {
|
||||
|
||||
@Override
|
||||
public ColorModel getColorModel(int transparency) {
|
||||
return colorModelFor(transparency);
|
||||
}
|
||||
|
||||
private static DirectColorModel colorModelFor(int transparency) {
|
||||
switch (transparency) {
|
||||
case Transparency.OPAQUE:
|
||||
return new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
|
||||
case Transparency.BITMASK:
|
||||
return new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
|
||||
case Transparency.TRANSLUCENT:
|
||||
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
|
||||
return new DirectColorModel(cs, 32,
|
||||
0xff0000, 0xff00, 0xff, 0xff000000,
|
||||
true, DataBuffer.TYPE_INT);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
return switch (transparency) {
|
||||
case Transparency.OPAQUE -> new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
|
||||
case Transparency.BITMASK -> new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
|
||||
case Transparency.TRANSLUCENT -> new DirectColorModel(32, 0xff0000, 0xff00, 0xff, 0xff000000);
|
||||
default -> null;
|
||||
};
|
||||
}
|
||||
|
||||
public SurfaceData createSurfaceData(WLComponentPeer peer) {
|
||||
|
||||
@@ -95,13 +95,6 @@ public class WLSMSurfaceData extends SurfaceData implements WLSurfaceDataExt {
|
||||
|
||||
@Override
|
||||
public Raster getRaster(int x, int y, int w, int h) {
|
||||
// Can do something like the following:
|
||||
// Raster r = getColorModel().createCompatibleWritableRaster(w, h);
|
||||
// copy surface data to this raster
|
||||
// save a reference to this raster
|
||||
// return r;
|
||||
// then in flush() check if raster was modified and take pixels from there
|
||||
// This is obviously suboptimal and shouldn't be used in performance-critical situations.
|
||||
throw new UnsupportedOperationException("Not implemented yet");
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/sysinfo.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "Trace.h"
|
||||
@@ -58,9 +57,6 @@ SurfaceBufferDestroy(WLSurfaceBuffer * buffer);
|
||||
static void
|
||||
ScheduleFrameCallback(WLSurfaceBufferManager * manager);
|
||||
|
||||
static void
|
||||
CancelFrameCallback(WLSurfaceBufferManager * manager);
|
||||
|
||||
static void
|
||||
CopyDrawBufferToShowBuffer(WLSurfaceBufferManager * manager);
|
||||
|
||||
@@ -144,16 +140,11 @@ DamageList_Add(DamageList* list, jint x, jint y, jint width, jint height)
|
||||
}
|
||||
|
||||
DamageList *item = malloc(sizeof(DamageList));
|
||||
if (!item) {
|
||||
JNIEnv* env = getEnv();
|
||||
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland buffer damage list");
|
||||
} else {
|
||||
item->x = x;
|
||||
item->y = y;
|
||||
item->width = width;
|
||||
item->height = height;
|
||||
item->next = list;
|
||||
}
|
||||
item->x = x;
|
||||
item->y = y;
|
||||
item->width = width;
|
||||
item->height = height;
|
||||
item->next = list;
|
||||
return item;
|
||||
}
|
||||
|
||||
@@ -359,8 +350,6 @@ WLBufferTraceFrame(WLSurfaceBufferManager* manager)
|
||||
static inline size_t
|
||||
SurfaceBufferSizeInBytes(WLSurfaceBuffer * buffer)
|
||||
{
|
||||
assert (buffer);
|
||||
|
||||
const jint stride = buffer->width * (jint)sizeof(pixel_t);
|
||||
return stride * buffer->height;
|
||||
}
|
||||
@@ -411,15 +400,11 @@ SurfaceBufferDestroy(WLSurfaceBuffer * buffer)
|
||||
// from Wayland.
|
||||
const size_t size = SurfaceBufferSizeInBytes(buffer);
|
||||
munmap(buffer->data, size);
|
||||
if (buffer->wlPool) {
|
||||
wl_shm_pool_destroy(buffer->wlPool);
|
||||
}
|
||||
wl_shm_pool_destroy(buffer->wlPool);
|
||||
|
||||
if (buffer->wlBuffer) {
|
||||
// "Destroying the wl_buffer after wl_buffer.release does not change
|
||||
// the surface contents" (source: wayland.xml)
|
||||
wl_buffer_destroy(buffer->wlBuffer);
|
||||
}
|
||||
// "Destroying the wl_buffer after wl_buffer.release does not change
|
||||
// the surface contents" (source: wayland.xml)
|
||||
wl_buffer_destroy(buffer->wlBuffer);
|
||||
|
||||
DamageList_FreeAll(buffer->damageList);
|
||||
free(buffer);
|
||||
@@ -453,16 +438,9 @@ SurfaceBufferCreate(WLSurfaceBufferManager * manager)
|
||||
buffer->height,
|
||||
stride,
|
||||
manager->format);
|
||||
if (buffer->wlBuffer) {
|
||||
wl_buffer_add_listener(buffer->wlBuffer,
|
||||
&wl_buffer_listener,
|
||||
manager);
|
||||
} else {
|
||||
JNIEnv* env = getEnv();
|
||||
JNU_ThrowOutOfMemoryError(env, "Failed to create Wayland buffer memory pool");
|
||||
free (buffer);
|
||||
return NULL;
|
||||
}
|
||||
wl_buffer_add_listener(buffer->wlBuffer,
|
||||
&wl_buffer_listener,
|
||||
manager);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
@@ -548,13 +526,7 @@ ShowBufferCreate(WLSurfaceBufferManager * manager)
|
||||
{
|
||||
ASSERT_SHOW_LOCK_IS_HELD(manager);
|
||||
|
||||
WLSurfaceBuffer* buffer = SurfaceBufferCreate(manager);
|
||||
if (buffer) {
|
||||
manager->bufferForShow.wlSurfaceBuffer = buffer;
|
||||
} else {
|
||||
JNIEnv* env = getEnv();
|
||||
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland surface buffer");
|
||||
}
|
||||
manager->bufferForShow.wlSurfaceBuffer = SurfaceBufferCreate(manager);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -609,11 +581,6 @@ ShowBufferInvalidateForNewSize(WLSurfaceBufferManager * manager)
|
||||
assert(buffer->next == NULL);
|
||||
SurfaceBufferDestroy(buffer);
|
||||
manager->bufferForShow.wlSurfaceBuffer = NULL;
|
||||
// Even though technically we didn't detach the buffer from the surface,
|
||||
// we need to attach a new, resized one as soon as possible. If we wait
|
||||
// for the next frame event to do that, Mutter may not remember
|
||||
// the latest size of the window.
|
||||
manager->isBufferAttached = false;
|
||||
}
|
||||
|
||||
while (manager->buffersFree) {
|
||||
@@ -627,11 +594,6 @@ ShowBufferInvalidateForNewSize(WLSurfaceBufferManager * manager)
|
||||
|
||||
ShowBufferCreate(manager);
|
||||
|
||||
// Need to wait for WLSBM_SurfaceCommit() with the new content for
|
||||
// the buffer we have just created, so there's no need for the
|
||||
// frame event until then.
|
||||
CancelFrameCallback(manager);
|
||||
|
||||
MUTEX_UNLOCK(manager->showLock);
|
||||
}
|
||||
|
||||
@@ -647,7 +609,8 @@ wl_frame_callback_done(void * data,
|
||||
MUTEX_LOCK(manager->showLock);
|
||||
|
||||
assert(manager->wl_frame_callback == wl_callback);
|
||||
CancelFrameCallback(manager);
|
||||
wl_callback_destroy(manager->wl_frame_callback);
|
||||
manager->wl_frame_callback = NULL;
|
||||
|
||||
if (manager->wlSurface) {
|
||||
const bool hasSomethingToSend = (manager->bufferForDraw.damageList != NULL);
|
||||
@@ -679,17 +642,6 @@ ScheduleFrameCallback(WLSurfaceBufferManager * manager)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
CancelFrameCallback(WLSurfaceBufferManager * manager)
|
||||
{
|
||||
ASSERT_SHOW_LOCK_IS_HELD(manager);
|
||||
|
||||
if (manager->wl_frame_callback) {
|
||||
wl_callback_destroy(manager->wl_frame_callback);
|
||||
manager->wl_frame_callback = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attaches the current show buffer to the Wayland surface, notifying Wayland
|
||||
* of all the damaged areas in that buffer.
|
||||
@@ -704,10 +656,7 @@ SendShowBufferToWayland(WLSurfaceBufferManager * manager)
|
||||
jlong startTime = GetJavaTimeNanos();
|
||||
|
||||
WLSurfaceBuffer * buffer = manager->bufferForShow.wlSurfaceBuffer;
|
||||
if (buffer == NULL) {
|
||||
// There should've been an OOME thrown already
|
||||
return;
|
||||
}
|
||||
assert(buffer);
|
||||
|
||||
ShowBufferPrepareFreshOne(manager);
|
||||
|
||||
@@ -777,11 +726,7 @@ CopyDrawBufferToShowBuffer(WLSurfaceBufferManager * manager)
|
||||
ASSERT_SHOW_LOCK_IS_HELD(manager);
|
||||
MUTEX_LOCK(manager->drawLock);
|
||||
|
||||
if (manager->bufferForShow.wlSurfaceBuffer == NULL) {
|
||||
// There should've been an OOME thrown already
|
||||
return;
|
||||
}
|
||||
|
||||
assert(manager->bufferForShow.wlSurfaceBuffer);
|
||||
assert(manager->wlSurface != NULL);
|
||||
assert(manager->bufferForShow.damageList == NULL);
|
||||
|
||||
@@ -833,14 +778,7 @@ DrawBufferCreate(WLSurfaceBufferManager * manager)
|
||||
|
||||
manager->bufferForDraw.frameID++;
|
||||
manager->bufferForDraw.manager = manager;
|
||||
void * data = malloc(DrawBufferSizeInBytes(manager));
|
||||
manager->bufferForDraw.data = data;
|
||||
|
||||
if (data == NULL) {
|
||||
JNIEnv* env = getEnv();
|
||||
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland surface buffer");
|
||||
return;
|
||||
}
|
||||
manager->bufferForDraw.data = malloc(DrawBufferSizeInBytes(manager));
|
||||
|
||||
for (jint i = 0; i < DrawBufferSizeInPixels(manager); ++i) {
|
||||
manager->bufferForDraw.data[i] = manager->bgPixel;
|
||||
@@ -856,31 +794,12 @@ DrawBufferDestroy(WLSurfaceBufferManager * manager)
|
||||
manager->bufferForDraw.damageList = NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
HaveEnoughMemoryForWindow(jint width, jint height)
|
||||
{
|
||||
if (width == 0 || height == 0) return true;
|
||||
|
||||
struct sysinfo si;
|
||||
sysinfo(&si);
|
||||
unsigned long freeMemBytes = (si.freeram + si.freeswap) * si.mem_unit;
|
||||
unsigned long maxBuffers = freeMemBytes / width / height / sizeof(pixel_t);
|
||||
|
||||
// Prevent the computer from becoming totally unresponsive some time down
|
||||
// the line when the buffers start to allocate and start throwing inevitable OOMEs.
|
||||
return maxBuffers >= 2;
|
||||
}
|
||||
|
||||
WLSurfaceBufferManager *
|
||||
WLSBM_Create(jint width, jint height, jint scale, jint bgPixel, jint wlShmFormat)
|
||||
{
|
||||
traceEnabled = getenv("J2D_STATS");
|
||||
traceFPSEnabled = getenv("J2D_FPS");
|
||||
|
||||
if (!HaveEnoughMemoryForWindow(width, height)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
WLSurfaceBufferManager * manager = calloc(1, sizeof(WLSurfaceBufferManager));
|
||||
if (!manager) {
|
||||
return NULL;
|
||||
@@ -927,7 +846,10 @@ WLSBM_SurfaceAssign(WLSurfaceBufferManager * manager, struct wl_surface* wl_surf
|
||||
manager->isBufferAttached = false;
|
||||
// The "frame" callback depends on the surface; when changing the surface,
|
||||
// cancel any associated pending callbacks:
|
||||
CancelFrameCallback(manager);
|
||||
if (manager->wl_frame_callback) {
|
||||
wl_callback_destroy(manager->wl_frame_callback);
|
||||
manager->wl_frame_callback = NULL;
|
||||
}
|
||||
} else {
|
||||
assert(manager->wlSurface == wl_surface);
|
||||
}
|
||||
@@ -943,8 +865,9 @@ WLSBM_Destroy(WLSurfaceBufferManager * manager)
|
||||
// because their callbacks retain a pointer to this manager.
|
||||
MUTEX_LOCK(manager->showLock);
|
||||
MUTEX_LOCK(manager->drawLock);
|
||||
|
||||
CancelFrameCallback(manager);
|
||||
if (manager->wl_frame_callback) {
|
||||
wl_callback_destroy(manager->wl_frame_callback);
|
||||
}
|
||||
DrawBufferDestroy(manager);
|
||||
|
||||
if (manager->bufferForShow.wlSurfaceBuffer) {
|
||||
@@ -1049,12 +972,6 @@ WLSB_DataGet(WLDrawBuffer * buffer)
|
||||
void
|
||||
WLSBM_SizeChangeTo(WLSurfaceBufferManager * manager, jint width, jint height, jint scale)
|
||||
{
|
||||
if (!HaveEnoughMemoryForWindow(width, height)) {
|
||||
JNIEnv* env = getEnv();
|
||||
JNU_ThrowOutOfMemoryError(env, "Wayland surface buffer too large");
|
||||
return;
|
||||
}
|
||||
|
||||
MUTEX_LOCK(manager->drawLock);
|
||||
|
||||
const bool size_changed = manager->bufferForDraw.width != width || manager->bufferForDraw.height != height;
|
||||
|
||||
@@ -256,10 +256,6 @@ Java_sun_java2d_wl_WLSMSurfaceData_initOps(JNIEnv *env, jobject wsd,
|
||||
wsdo->sdOps.GetRasInfo = WLSD_GetRasInfo;
|
||||
wsdo->sdOps.Dispose = WLSD_Dispose;
|
||||
wsdo->bufferManager = WLSBM_Create(width, height, scale, backgroundRGB, wlShmFormat);
|
||||
if (wsdo->bufferManager == NULL) {
|
||||
JNU_ThrowOutOfMemoryError(env, "Failed to create Wayland surface buffer manager");
|
||||
return;
|
||||
}
|
||||
pthread_mutexattr_t attr;
|
||||
pthread_mutexattr_init(&attr);
|
||||
// Recursive mutex is required because blit can be done with both source
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "wakefield-client-protocol.h"
|
||||
#endif
|
||||
|
||||
static jfieldID nativePtrID;
|
||||
static jmethodID postWindowClosingMID;
|
||||
static jmethodID notifyConfiguredMID;
|
||||
static jmethodID notifyEnteredOutputMID;
|
||||
@@ -302,6 +303,7 @@ JNIEXPORT void JNICALL
|
||||
Java_sun_awt_wl_WLComponentPeer_initIDs
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
CHECK_NULL(nativePtrID = (*env)->GetFieldID(env, clazz, "nativePtr", "J"));
|
||||
CHECK_NULL_THROW_IE(env,
|
||||
notifyConfiguredMID = (*env)->GetMethodID(env, clazz, "notifyConfigured", "(IIIIZZ)V"),
|
||||
"Failed to find method WLComponentPeer.notifyConfigured");
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
|
||||
#include "awt.h"
|
||||
#include "awt_p.h"
|
||||
#include "debug_assert.h"
|
||||
|
||||
#include <sun_awt_X11InputMethodBase.h>
|
||||
#include <sun_awt_X11_XInputMethod.h>
|
||||
@@ -2065,7 +2064,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XInputMethod_doesFocusedXICSupportMo
|
||||
result = JNI_TRUE;
|
||||
}
|
||||
} else {
|
||||
DASSERT(pX11IMData->current_ic == pX11IMData->ic_passive.xic);
|
||||
assert( (pX11IMData->current_ic == pX11IMData->ic_passive.xic) );
|
||||
if ( (pX11IMData->ic_passive.inputStyle & XIMPreeditPosition) == XIMPreeditPosition ) {
|
||||
result = JNI_TRUE;
|
||||
}
|
||||
@@ -2427,8 +2426,8 @@ static Bool jbNewXimClient_initializeXICs(
|
||||
__func__, inputStylesToTry.pairsCount);
|
||||
|
||||
// If one of the contexts is NULL then both of them are expected to be NULL
|
||||
DASSERT(activeClientIc.xic == NULL);
|
||||
DASSERT(passiveClientIc.xic == NULL);
|
||||
assert( (activeClientIc.xic == NULL) );
|
||||
assert( (passiveClientIc.xic == NULL) );
|
||||
|
||||
goto finally;
|
||||
}
|
||||
@@ -2584,8 +2583,8 @@ static jbNewXimClient_PrioritizedStyles jbNewXimClient_chooseAndPrioritizeInputS
|
||||
|
||||
unsigned int i = 0, j = 0;
|
||||
|
||||
DASSERT(activeClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES);
|
||||
DASSERT(passiveClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES);
|
||||
assert( (activeClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES) );
|
||||
assert( (passiveClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES) );
|
||||
|
||||
result.pairsCount = 0;
|
||||
|
||||
@@ -2618,7 +2617,7 @@ static jbNewXimClient_PrioritizedStyles jbNewXimClient_chooseAndPrioritizeInputS
|
||||
}
|
||||
|
||||
// Combining the pairs (activeClientStyles[i], passiveClientStyles[j]) into result
|
||||
DASSERT(activeClientStylesCount * passiveClientStylesCount <= sizeof(result.combinations) / sizeof(result.combinations[0]));
|
||||
assert( (activeClientStylesCount * passiveClientStylesCount <= sizeof(result.combinations) / sizeof(result.combinations[0])) );
|
||||
for (i = 0; i < activeClientStylesCount; ++i) {
|
||||
const jbNewXimClient_SupportedInputStyle activeStyle = activeClientStyles[i];
|
||||
|
||||
@@ -2842,7 +2841,7 @@ finally:
|
||||
xic = NULL;
|
||||
}
|
||||
if (preeditFontSet != NULL) {
|
||||
DASSERT(xicDisplay != NULL);
|
||||
assert( (xicDisplay != NULL) );
|
||||
XFreeFontSet(xicDisplay, preeditFontSet);
|
||||
preeditFontSet = NULL;
|
||||
}
|
||||
@@ -3008,11 +3007,11 @@ static void jbNewXimClient_destroyInputContext(jbNewXimClient_ExtendedInputConte
|
||||
XDestroyIC(localContext.xic);
|
||||
}
|
||||
if (localContext.preeditCustomFontSet != NULL) {
|
||||
DASSERT(localContext.xicDisplay != NULL);
|
||||
assert( (localContext.xicDisplay != NULL) );
|
||||
XFreeFontSet(localContext.xicDisplay, localContext.preeditCustomFontSet);
|
||||
}
|
||||
if ((localContext.statusCustomFontSet != NULL) && (localContext.statusCustomFontSet != localContext.preeditCustomFontSet)) {
|
||||
DASSERT(localContext.xicDisplay != NULL);
|
||||
assert( (localContext.xicDisplay != NULL) );
|
||||
XFreeFontSet(localContext.xicDisplay, localContext.statusCustomFontSet);
|
||||
}
|
||||
if (localContext.preeditAndStatusCallbacks != NULL) {
|
||||
|
||||
@@ -218,9 +218,11 @@ public class Win32GraphicsConfig extends GraphicsConfiguration
|
||||
return (super.toString()+"[dev="+device+",pixfmt="+visual+"]");
|
||||
}
|
||||
|
||||
private native Rectangle getBounds(int screen);
|
||||
|
||||
@Override
|
||||
public Rectangle getBounds() {
|
||||
return device.getBounds();
|
||||
return getBounds(device.getScreen());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -106,12 +106,11 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
|
||||
private static native void initIDs();
|
||||
|
||||
private native void initDevice(int screen);
|
||||
private static native void initNativeScale(int screen);
|
||||
private static native void setNativeScale(int screen, float scaleX, float scaleY);
|
||||
private static native float getNativeScaleX(int screen);
|
||||
private static native float getNativeScaleY(int screen);
|
||||
private static native Rectangle getBounds(int screen);
|
||||
native void initDevice(int screen);
|
||||
native void initNativeScale(int screen);
|
||||
native void setNativeScale(int screen, float scaleX, float scaleY);
|
||||
native float getNativeScaleX(int screen);
|
||||
native float getNativeScaleY(int screen);
|
||||
|
||||
public Win32GraphicsDevice(int screennum) {
|
||||
this.screen = screennum;
|
||||
@@ -170,10 +169,6 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
}
|
||||
}
|
||||
|
||||
public Rectangle getBounds() {
|
||||
return getBounds(getScreen());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this is a valid devicie. Device can become
|
||||
* invalid as a result of device removal event.
|
||||
@@ -261,7 +256,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
}
|
||||
}
|
||||
|
||||
private static native int getMaxConfigsImpl(int screen);
|
||||
private native int getMaxConfigsImpl(int screen);
|
||||
|
||||
/**
|
||||
* Returns whether or not the PixelFormat indicated by index is
|
||||
@@ -273,7 +268,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
* are disabled. Do not call this function with an index of 0.
|
||||
* @param index a PixelFormat index
|
||||
*/
|
||||
private static native boolean isPixFmtSupported(int index, int screen);
|
||||
private native boolean isPixFmtSupported(int index, int screen);
|
||||
|
||||
/**
|
||||
* Returns the PixelFormatID of the default graphics configuration
|
||||
@@ -292,7 +287,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
* Returns the default PixelFormat ID from GDI. Do not call if PixelFormats
|
||||
* are disabled.
|
||||
*/
|
||||
private static native int getDefaultPixIDImpl(int screen);
|
||||
private native int getDefaultPixIDImpl(int screen);
|
||||
|
||||
/**
|
||||
* Returns the default graphics configuration
|
||||
@@ -546,8 +541,9 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
dynamicColorModel = null;
|
||||
defaultConfig = null;
|
||||
configs = null;
|
||||
initScaleFactors();
|
||||
|
||||
Rectangle screenBounds = getBounds();
|
||||
Rectangle screenBounds = getDefaultConfiguration().getBounds();
|
||||
resizeFSWindow(getFullScreenWindow(), screenBounds);
|
||||
|
||||
// pass on to all top-level windows on this display
|
||||
@@ -581,8 +577,8 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
|
||||
/**
|
||||
* Creates and returns the color model associated with this device
|
||||
*/
|
||||
private static native ColorModel makeColorModel(int screen,
|
||||
boolean dynamic);
|
||||
private native ColorModel makeColorModel (int screen,
|
||||
boolean dynamic);
|
||||
|
||||
/**
|
||||
* Returns a dynamic ColorModel which is updated when there
|
||||
|
||||
@@ -31,7 +31,6 @@ import java.awt.GraphicsDevice;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.ListIterator;
|
||||
|
||||
import sun.awt.windows.WToolkit;
|
||||
@@ -148,23 +147,41 @@ public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
|
||||
*/
|
||||
@Override
|
||||
public void displayChanged() {
|
||||
if (screens != null) {
|
||||
if (oldDevices == null) {
|
||||
oldDevices = new ArrayList<>();
|
||||
}
|
||||
for (int i = 0; i < screens.length; i++) {
|
||||
if (screens[i] instanceof Win32GraphicsDevice gd) {
|
||||
oldDevices.add(new WeakReference<>(gd));
|
||||
} else {
|
||||
// REMIND: can we ever have anything other than Win32GD?
|
||||
assert (false) : screens[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
// create the new devices
|
||||
// getNumScreens() will return the correct current number of screens
|
||||
GraphicsDevice[] newDevices = new GraphicsDevice[getNumScreens()];
|
||||
Arrays.setAll(newDevices, this::makeScreenDevice);
|
||||
GraphicsDevice[] oldScreens = screens;
|
||||
// go through the list of current devices and determine if they
|
||||
// could be reused, or will have to be replaced
|
||||
if (oldScreens != null) {
|
||||
for (int i = 0; i < oldScreens.length; i++) {
|
||||
if (!(screens[i] instanceof Win32GraphicsDevice)) {
|
||||
// REMIND: can we ever have anything other than Win32GD?
|
||||
assert (false) : oldScreens[i];
|
||||
continue;
|
||||
}
|
||||
Win32GraphicsDevice gd = (Win32GraphicsDevice)oldScreens[i];
|
||||
// devices may be invalidated from the native code when the
|
||||
// display change happens (device add/removal also causes a
|
||||
// display change)
|
||||
if (!gd.isValid()) {
|
||||
if (oldDevices == null) {
|
||||
oldDevices =
|
||||
new ArrayList<WeakReference<Win32GraphicsDevice>>();
|
||||
}
|
||||
oldDevices.add(new WeakReference<Win32GraphicsDevice>(gd));
|
||||
} else if (i < newDevices.length) {
|
||||
// reuse the device
|
||||
newDevices[i] = gd;
|
||||
}
|
||||
}
|
||||
oldScreens = null;
|
||||
}
|
||||
// create the new devices (those that weren't reused)
|
||||
for (int i = 0; i < newDevices.length; i++) {
|
||||
if (newDevices[i] == null) {
|
||||
newDevices[i] = makeScreenDevice(i);
|
||||
}
|
||||
}
|
||||
// install the new array of devices
|
||||
// Note: no synchronization here, it doesn't matter if a thread gets
|
||||
// a new or an old array this time around
|
||||
|
||||
@@ -631,14 +631,6 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer,
|
||||
|
||||
AWTAccessor.getComponentAccessor().
|
||||
setGraphicsConfiguration((Component)target, winGraphicsConfig);
|
||||
|
||||
// Windows may have already sent us WM_PAINT,
|
||||
// which we have processed before updating the GC,
|
||||
// so force full repaint just to be sure we don't leave damaged content.
|
||||
if (oldDev != newDev) {
|
||||
Rectangle b = getBounds();
|
||||
handlePaint(0, 0, b.width, b.height);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -214,7 +214,6 @@ BOOL Devices::UpdateInstance(JNIEnv *env)
|
||||
}
|
||||
for (i = 0; i < numScreens; ++i) {
|
||||
rawDevices[i]->Initialize();
|
||||
rawDevices[i]->InitDesktopScales();
|
||||
}
|
||||
{
|
||||
CriticalSection::Lock l(arrayLock);
|
||||
|
||||
@@ -919,20 +919,6 @@ void AwtToolkit::DestroyComponentHWND(HWND hwnd)
|
||||
void SpyWinMessage(HWND hwnd, UINT message, LPCTSTR szComment);
|
||||
#endif
|
||||
|
||||
static BOOL CALLBACK UpdateAllThreadWindowSizes(HWND hWnd, LPARAM)
|
||||
{
|
||||
TRY;
|
||||
AwtComponent *c = AwtComponent::GetComponent(hWnd);
|
||||
if (c) {
|
||||
RECT r;
|
||||
GetWindowRect(hWnd, &r);
|
||||
c->WmSize(SIZENORMAL, r.right-r.left, r.bottom-r.top);
|
||||
c->Invalidate(NULL);
|
||||
}
|
||||
return TRUE;
|
||||
CATCH_BAD_ALLOC_RET(FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* An AwtToolkit window is just a means of routing toolkit messages to here.
|
||||
*/
|
||||
@@ -1323,7 +1309,6 @@ LRESULT CALLBACK AwtToolkit::WndProc(HWND hWnd, UINT message,
|
||||
case WM_DISPLAYCHANGE: {
|
||||
// Reinitialize screens
|
||||
initScreens(env);
|
||||
::EnumThreadWindows(MainThread(), (WNDENUMPROC)UpdateAllThreadWindowSizes, 0);
|
||||
|
||||
// Notify Java side - call WToolkit.displayChanged()
|
||||
jclass clazz = env->FindClass("sun/awt/windows/WToolkit");
|
||||
|
||||
@@ -76,3 +76,50 @@ inline int shiftToMask(int numBits, int shift) {
|
||||
mask = mask << shift;
|
||||
return mask;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_awt_Win32GraphicsConfig
|
||||
* Method: getBounds
|
||||
* Signature: ()Ljava/awt/Rectangle
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_sun_awt_Win32GraphicsConfig_getBounds(JNIEnv *env, jobject thisobj,
|
||||
jint screen)
|
||||
{
|
||||
jclass clazz;
|
||||
jmethodID mid;
|
||||
jobject bounds = NULL;
|
||||
|
||||
clazz = env->FindClass("java/awt/Rectangle");
|
||||
CHECK_NULL_RETURN(clazz, NULL);
|
||||
mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
|
||||
if (mid != 0) {
|
||||
RECT rRW = {0, 0, 0, 0};
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
|
||||
if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
|
||||
int w = (device == NULL) ? rRW.right - rRW.left
|
||||
: device->ScaleDownX(rRW.right - rRW.left);
|
||||
int h = (device == NULL) ? rRW.bottom - rRW.top
|
||||
: device->ScaleDownY(rRW.bottom - rRW.top);
|
||||
|
||||
bounds = env->NewObject(clazz, mid, rRW.left, rRW.top, w, h);
|
||||
}
|
||||
else {
|
||||
// 4910760 - don't return a null bounds, return the bounds of the
|
||||
// primary screen
|
||||
int w = ::GetSystemMetrics(SM_CXSCREEN);
|
||||
int h = ::GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
bounds = env->NewObject(clazz, mid,
|
||||
0, 0,
|
||||
device == NULL ? w : device->ScaleDownX(w),
|
||||
device == NULL ? h : device->ScaleDownY(h));
|
||||
}
|
||||
if (safe_ExceptionOccurred(env)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
|
||||
@@ -1018,7 +1018,7 @@ Java_sun_awt_Win32GraphicsDevice_initIDs(JNIEnv *env, jclass cls)
|
||||
*/
|
||||
|
||||
JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getMaxConfigsImpl
|
||||
(JNIEnv* jniEnv, jclass clazz, jint screen) {
|
||||
(JNIEnv* jniEnv, jobject theThis, jint screen) {
|
||||
TRY;
|
||||
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
|
||||
|
||||
@@ -1045,7 +1045,7 @@ JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getMaxConfigsImpl
|
||||
*/
|
||||
|
||||
JNIEXPORT jboolean JNICALL Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported
|
||||
(JNIEnv* env, jclass clazz, jint pixFmtID, jint screen) {
|
||||
(JNIEnv* env, jobject theThis, jint pixFmtID, jint screen) {
|
||||
TRY;
|
||||
jboolean suppColor = JNI_TRUE;
|
||||
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
|
||||
@@ -1087,7 +1087,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported
|
||||
*/
|
||||
|
||||
JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl
|
||||
(JNIEnv* env, jclass clazz, jint screen) {
|
||||
(JNIEnv* env, jobject theThis, jint screen) {
|
||||
TRY;
|
||||
int pixFmtID = 0;
|
||||
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
|
||||
@@ -1119,7 +1119,7 @@ JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl
|
||||
}
|
||||
|
||||
if (JNI_FALSE == Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported(
|
||||
env, clazz, pixFmtID, screen)) {
|
||||
env, theThis, pixFmtID, screen)) {
|
||||
/* Can't find a suitable pixel format ID. Fall back on 0. */
|
||||
pixFmtID = 0;
|
||||
}
|
||||
@@ -1416,7 +1416,7 @@ JNIEXPORT void JNICALL Java_sun_awt_Win32GraphicsDevice_enumDisplayModes
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_makeColorModel
|
||||
(JNIEnv *env, jclass clazz, jint screen, jboolean dynamic)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen, jboolean dynamic)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
return devices->GetDevice(screen)->GetColorModel(env, dynamic);
|
||||
@@ -1429,10 +1429,10 @@ JNIEXPORT jobject JNICALL
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_initDevice
|
||||
(JNIEnv *env, jobject graphicsDevice, jint screen)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
devices->GetDevice(screen)->SetJavaDevice(env, graphicsDevice);
|
||||
devices->GetDevice(screen)->SetJavaDevice(env, thisPtr);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1442,7 +1442,7 @@ JNIEXPORT void JNICALL
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_setNativeScale
|
||||
(JNIEnv *env, jclass clazz, jint screen, jfloat scaleX, jfloat scaleY)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen, jfloat scaleX, jfloat scaleY)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
@@ -1460,7 +1460,7 @@ JNIEXPORT void JNICALL
|
||||
*/
|
||||
JNIEXPORT jfloat JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_getNativeScaleX
|
||||
(JNIEnv *env, jclass clazz, jint screen)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
@@ -1474,7 +1474,7 @@ JNIEXPORT jfloat JNICALL
|
||||
*/
|
||||
JNIEXPORT jfloat JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_getNativeScaleY
|
||||
(JNIEnv *env, jclass clazz, jint screen)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
@@ -1488,7 +1488,7 @@ JNIEXPORT jfloat JNICALL
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_initNativeScale
|
||||
(JNIEnv *env, jclass clazz, jint screen)
|
||||
(JNIEnv *env, jobject thisPtr, jint screen)
|
||||
{
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
@@ -1497,48 +1497,3 @@ Java_sun_awt_Win32GraphicsDevice_initNativeScale
|
||||
device->InitDesktopScales();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_awt_Win32GraphicsDevice
|
||||
* Method: getBounds
|
||||
* Signature: (I)Ljava/awt/Rectangle
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_sun_awt_Win32GraphicsDevice_getBounds(JNIEnv *env, jclass clazz, jint screen)
|
||||
{
|
||||
jmethodID mid;
|
||||
jobject bounds = NULL;
|
||||
|
||||
clazz = env->FindClass("java/awt/Rectangle");
|
||||
CHECK_NULL_RETURN(clazz, NULL);
|
||||
mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
|
||||
if (mid != 0) {
|
||||
RECT rRW = {0, 0, 0, 0};
|
||||
Devices::InstanceAccess devices;
|
||||
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
|
||||
|
||||
if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
|
||||
int w = (device == NULL) ? rRW.right - rRW.left
|
||||
: device->ScaleDownX(rRW.right - rRW.left);
|
||||
int h = (device == NULL) ? rRW.bottom - rRW.top
|
||||
: device->ScaleDownY(rRW.bottom - rRW.top);
|
||||
|
||||
bounds = env->NewObject(clazz, mid, rRW.left, rRW.top, w, h);
|
||||
}
|
||||
else {
|
||||
// 4910760 - don't return a null bounds, return the bounds of the
|
||||
// primary screen
|
||||
int w = ::GetSystemMetrics(SM_CXSCREEN);
|
||||
int h = ::GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
bounds = env->NewObject(clazz, mid,
|
||||
0, 0,
|
||||
device == NULL ? w : device->ScaleDownX(w),
|
||||
device == NULL ? h : device->ScaleDownY(h));
|
||||
}
|
||||
if (safe_ExceptionOccurred(env)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
|
||||
@@ -211,17 +211,14 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// checks for the file.
|
||||
private File createAttachFile(int pid) throws IOException {
|
||||
String fn = ".attach_pid" + pid;
|
||||
if (!attachOnlyInTmp()) {
|
||||
String path = "/proc/" + pid + "/cwd/" + fn;
|
||||
File f = new File(path);
|
||||
try {
|
||||
f.createNewFile();
|
||||
return f;
|
||||
} catch (IOException x) {
|
||||
}
|
||||
String path = "/proc/" + pid + "/cwd/" + fn;
|
||||
File f = new File(path);
|
||||
try {
|
||||
f.createNewFile();
|
||||
} catch (IOException x) {
|
||||
f = new File(tmpdir, fn);
|
||||
f.createNewFile();
|
||||
}
|
||||
File f = new File(tmpdir, fn);
|
||||
f.createNewFile();
|
||||
return f;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,26 +224,24 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine {
|
||||
// checks for the file.
|
||||
private File createAttachFile(int pid, int ns_pid) throws IOException {
|
||||
String fn = ".attach_pid" + ns_pid;
|
||||
if (!attachOnlyInTmp()) {
|
||||
String path = "/proc/" + pid + "/cwd/" + fn;
|
||||
File f = new File(path);
|
||||
try {
|
||||
// Do not canonicalize the file path, or we will fail to attach to a VM in a container.
|
||||
f.createNewFile();
|
||||
} catch (IOException x) {
|
||||
String path = "/proc/" + pid + "/cwd/" + fn;
|
||||
File f = new File(path);
|
||||
try {
|
||||
// Do not canonicalize the file path, or we will fail to attach to a VM in a container.
|
||||
f.createNewFile();
|
||||
} catch (IOException x) {
|
||||
String root;
|
||||
if (pid != ns_pid) {
|
||||
// A process may not exist in the same mount namespace as the caller.
|
||||
// Instead, attach relative to the target root filesystem as exposed by
|
||||
// procfs regardless of namespaces.
|
||||
root = "/proc/" + pid + "/root/" + tmpdir;
|
||||
} else {
|
||||
root = tmpdir;
|
||||
}
|
||||
f = new File(root, fn);
|
||||
f.createNewFile();
|
||||
}
|
||||
String root;
|
||||
if (pid != ns_pid) {
|
||||
// A process may not exist in the same mount namespace as the caller.
|
||||
// Instead, attach relative to the target root filesystem as exposed by
|
||||
// procfs regardless of namespaces.
|
||||
root = "/proc/" + pid + "/root/" + tmpdir;
|
||||
} else {
|
||||
root = tmpdir;
|
||||
}
|
||||
File f = new File(root, fn);
|
||||
f.createNewFile();
|
||||
return f;
|
||||
}
|
||||
|
||||
|
||||
@@ -497,12 +497,4 @@ public abstract class HotSpotVirtualMachine extends VirtualMachine {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean attachOnlyInTmp() {
|
||||
try {
|
||||
return Boolean.getBoolean("sun.tools.attach.tmp.only");
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,6 @@ compiler/ciReplay/TestUnresolvedClasses.java NOBUG generic-all
|
||||
|
||||
# :hotspot_gc
|
||||
|
||||
gc/stress/TestStressRSetCoarsening.java JBR-6706 windows-x64
|
||||
|
||||
#############################################################################
|
||||
|
||||
@@ -87,3 +86,5 @@ serviceability/sa/ClhsdbCDSCore.java initial_run,NOBUG generic-aarch64,macosx-al
|
||||
|
||||
vmTestbase/gc/gctests/LargeObjects/large002/TestDescription.java NOBUG linux-all timeout
|
||||
vmTestbase/gc/gctests/StringInternSyncWithGC/StringInternSyncWithGC.java NOBUG macosx-all timeout on macstudio
|
||||
|
||||
vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java JBR-6470 macosx-x64
|
||||
|
||||
@@ -257,7 +257,6 @@ vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java initia
|
||||
vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java time_out_intermittent macosx-all
|
||||
vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java JBR-6530 macosx-all
|
||||
vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java JBR-6361 macosx-all
|
||||
vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java JBR-6470 macosx-all
|
||||
|
||||
vmTestbase/metaspace/gc/firstGC_10m/TestDescription.java 8208250 generic-all
|
||||
vmTestbase/metaspace/gc/firstGC_50m/TestDescription.java 8208250 generic-all
|
||||
|
||||
@@ -35,13 +35,12 @@
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import test.java.awt.regtesthelpers.Util;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
public class ActionAfterRemove
|
||||
{
|
||||
private static volatile boolean passed = true;
|
||||
|
||||
public static final void main(String args[]) throws Exception
|
||||
public static final void main(String args[])
|
||||
{
|
||||
// In order to handle all uncaught exceptions in the EDT
|
||||
final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()
|
||||
@@ -54,22 +53,20 @@ public class ActionAfterRemove
|
||||
}
|
||||
};
|
||||
|
||||
final Frame frame = new Frame();
|
||||
final List list = new List();
|
||||
Robot robot = null;
|
||||
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
final Frame frame = new Frame();
|
||||
|
||||
list.add("will be removed");
|
||||
frame.add(list);
|
||||
list.add("will be removed");
|
||||
frame.add(list);
|
||||
|
||||
frame.setLayout(new FlowLayout());
|
||||
frame.setBounds(100, 100, 300, 300);
|
||||
frame.setVisible(true);
|
||||
frame.setLayout(new FlowLayout());
|
||||
frame.setBounds(100,100,300,300);
|
||||
frame.setVisible(true);
|
||||
|
||||
list.select(0);
|
||||
list.remove(0);
|
||||
});
|
||||
list.select(0);
|
||||
list.remove(0);
|
||||
|
||||
try{
|
||||
robot = new Robot();
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2000-2024 JetBrains s.r.o.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @summary Regression test for JBR-6704 Extra IME event fired when pressing a keystroke containing Ctrl and focus moving to a different window
|
||||
* @modules java.desktop/sun.lwawt.macosx
|
||||
* @run main InputMethodTest CtrlShortcutNewWindowTest
|
||||
* @requires (jdk.version.major >= 8 & os.family == "mac")
|
||||
*/
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
import static java.awt.event.KeyEvent.*;
|
||||
|
||||
public class CtrlShortcutNewWindowTest implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
var frame = new JFrame();
|
||||
frame.setSize(300, 300);
|
||||
frame.setLocation(100, 100);
|
||||
JTextField textField = new JTextField();
|
||||
frame.add(textField);
|
||||
textField.requestFocusInWindow();
|
||||
|
||||
final boolean[] keyPressed = {false};
|
||||
|
||||
InputMethodTest.textArea.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == VK_BACK_QUOTE && (e.getModifiersEx() & KeyEvent.CTRL_DOWN_MASK) != 0) {
|
||||
keyPressed[0] = true;
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
InputMethodTest.section("Ctrl+Backtick");
|
||||
InputMethodTest.layout("com.apple.keylayout.ABC");
|
||||
InputMethodTest.type(VK_BACK_QUOTE, CTRL_DOWN_MASK);
|
||||
InputMethodTest.delay(500);
|
||||
|
||||
if (!keyPressed[0]) {
|
||||
InputMethodTest.fail("Ctrl+Backtick key combination not detected");
|
||||
}
|
||||
|
||||
if (!textField.getText().isEmpty()) {
|
||||
InputMethodTest.fail("Extra characters in the text field");
|
||||
}
|
||||
|
||||
frame.setVisible(false);
|
||||
frame.dispose();
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,6 @@ public class InputMethodTest {
|
||||
private static final List<KeyEvent> triggeredEvents = new ArrayList<>();
|
||||
|
||||
private enum TestCases {
|
||||
CtrlShortcutNewWindowTest (new CtrlShortcutNewWindowTest()),
|
||||
DeadKeysTest (new DeadKeysTest()),
|
||||
FocusMoveUncommitedCharactersTest (new FocusMoveUncommitedCharactersTest()),
|
||||
KeyCodesTest (new KeyCodesTest()),
|
||||
@@ -333,8 +332,4 @@ public class InputMethodTest {
|
||||
public static void fail(String comment) {
|
||||
expectTrue(false, comment);
|
||||
}
|
||||
|
||||
public static void delay(int millis) {
|
||||
robot.delay(millis);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,16 +111,11 @@
|
||||
|
||||
############################################################################
|
||||
|
||||
java/awt/EventQueue/6980209/bug6980209.java JBR-6699 linux-all
|
||||
java/awt/Focus/6378278/InputVerifierTest.java JBR-6700 linux-all
|
||||
java/awt/Focus/6382144/EndlessLoopTest.java JBR-6701 linux-all
|
||||
java/awt/Focus/6981400/Test1.java 8029675,JBR-6702 windows-all,macosx-all,linux-all
|
||||
java/awt/MenuItem/EnableTest.java NOBUG windows-all timeout
|
||||
java/awt/Robot/NonEmptyErrorStream.java JBR-6275,JBR-5510,JBR-6246 macosx-all,linux-5.18.2-arch1-1,generic-all
|
||||
|
||||
javax/swing/JEditorPane/TestBrowserBGColor.java JBR-6697 linux-aarch64
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6360 linux-all,windows-all
|
||||
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-6485 linux-all
|
||||
javax/swing/plaf/nimbus/8041642/bug8041642.java JBR-6698 linux-all
|
||||
javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java JBR-5952,JBR-6274 windows-x64,macosx-all
|
||||
|
||||
jb/java/awt/Focus/PopupIncomingFocusTest.java JBR-2651 generic-all
|
||||
|
||||
@@ -3,9 +3,8 @@ java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java JBR-5398 linux-all,
|
||||
java/awt/Choice/ChoiceStaysOpenedOnTAB.java JBR-6284 linux-all
|
||||
java/awt/Debug/X11Trace.java JBR-5442 linux-all
|
||||
java/awt/EmbeddedFrame/GraphicsConfigTest/GraphicsConfigTest.java 8305515
|
||||
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058,JBR-6664 windows-all,linux-all,macosx-all
|
||||
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058,JBR-6664 windows-all,linux-all
|
||||
java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java JBR-5531 macosx-all,linux-all
|
||||
java/awt/Focus/6981400/Test1.java 8029675,JBR-5510,JBR-6702 windows-all,macosx-all,linux-5.18.2-arch1-1,linux-all
|
||||
java/awt/Frame/GetGraphicsStressTest/GetGraphicsStressTest.java JBR-5117,JBR-6509 linux-all,generic-all
|
||||
java/awt/Frame/MaximizedToOppositeScreen/MaximizedToOppositeScreenSmall.java JBR-4379 windows-all
|
||||
java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java JBR-4379 windows-all
|
||||
@@ -19,7 +18,6 @@ java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java JBR-5086 linux-5
|
||||
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-5390 macosx-all,linux-all
|
||||
java/awt/Robot/NonEmptyErrorStream.java JBR-5442,JBR-5510,JBR-6246 JBR-5442,linux-5.18.2-arch1-1,generic-all
|
||||
java/awt/Robot/RobotMoveMultiscreen.java JBR-5442 linux-all
|
||||
java/awt/Robot/SpuriousMouseEvents/SpuriousMouseEvents.java JBR-6572 linux-all
|
||||
java/awt/TextArea/TextAreaEditing/TextAreaEditing.java JBR-6282 linux-all
|
||||
java/awt/Toolkit/AWTEventListenerProxyTest/AWTEventListenerProxyTest.java JBR-6065 windows-all
|
||||
java/awt/Window/SlowMotion/SlowMotion.java JBR-5442 linux-all
|
||||
@@ -28,7 +26,6 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
|
||||
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java JBR-5442 linux-all
|
||||
javax/swing/SwingWorker/TestDoneBeforeDoInBackground.java JBR-5442 linux-all
|
||||
javax/swing/system/6799345/TestShutdown.java JBR-6020 windows-all
|
||||
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945,JBR-6572 linux-all,macosx-all
|
||||
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-4379 windows-all,linux-all
|
||||
|
||||
jb/java/awt/dnd/DnDScalingWithHIDPI/DnDScalingWithHIDPITest.java JBR-5442 linux-all
|
||||
@@ -131,7 +128,6 @@ javax/swing/text/html/CSS/4530474/bug4530474.java JBR-5510,JBR-5951 linux-all,wi
|
||||
javax/swing/text/html/StyleSheet/bug4936917.java 8277816,JBR-899,JBR-5510 windows-all,macosx-aarch64,linux-all
|
||||
jb/java/awt/MouseInfo/GetPointerInfoTest.java nobug linux-all
|
||||
jb/java/awt/Window/BackgroundWindowOrderOnSpaceChange.java JBR-6486 macosx-all
|
||||
jb/java/awt/Window/ZOrderOnModalDialogActivation.java JBR-5714 windows-all,linux-x64
|
||||
|
||||
sun/java2d/GdiRendering/ClipShapeRendering.java 8285604,JBR-5510 windows-all,linux-all
|
||||
sun/java2d/GdiRendering/InsetClipping.java 7124403,JBR-5510 windows-x64,macosx-all,linux-all
|
||||
|
||||
@@ -156,7 +156,6 @@ java/awt/dnd/DragTriggerEventTest.java 8320083,JBR-6548 windows-all,linux-all
|
||||
java/awt/dnd/DropActionChangeTest.java JBR-6489 generic-all
|
||||
java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java 8029680 generic-all
|
||||
java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java JBR-5730 linux-all
|
||||
java/awt/dnd/DropTargetingTest.java JBR-6729 windows-all
|
||||
java/awt/dnd/MissedDragEnterTest.java JBR-6091 windows-all
|
||||
java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java 8288839,JBR-5727,JBR-5959 windows-all,linux-all
|
||||
java/awt/dnd/ModalDialogOnDropDeadlockTest.java JBR-6529 windows-all
|
||||
@@ -255,7 +254,7 @@ java/awt/Focus/8000326/SetFocusTraversalKeysEnabledTest.java JBR-4997,JBR-5729 w
|
||||
java/awt/Focus/8073453/AWTFocusTransitionTest.java JBR-5210,8298247 windows-all,linux-all
|
||||
java/awt/Focus/8073453/SwingFocusTransitionTest.java JBR-5210 windows-all
|
||||
java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java JBR-5210 windows-all
|
||||
java/awt/event/KeyEvent/AltGraphModifier.java JBR-6085 windows-all
|
||||
java/awt/event/KeyEvent/AltGraphModifier.java JBR-6085 windows-aarch64
|
||||
java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java 8169476 windows-all
|
||||
java/awt/event/KeyEvent/KeyChar/KeyCharTest.java 8169474,8224055,JBR-93 windows-all,linux-all
|
||||
java/awt/event/KeyEvent/KeyEventLocationTest.java JBR-5916 linux-all
|
||||
@@ -325,8 +324,6 @@ java/awt/font/JNICheck/JNICheck.sh JBR-5011 linux-all
|
||||
java/awt/font/TextLayout/TextLayoutBounds.java 8169188 generic-all
|
||||
java/awt/image/BufferedImage/ICMColorDataTest/ICMColorDataTest.java 8233028 generic-all
|
||||
java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java 8056077 linux-all
|
||||
java/awt/image/multiresolution/Corrupted2XImageTest.java 8264053 macosx-all
|
||||
java/awt/image/multiresolution/MenuMultiresolutionIconTest.java JBR-4880,8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
java/awt/image/multiresolution/MultiresolutionIconTest.java 8252812 windows-all,linux-all
|
||||
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
|
||||
@@ -904,9 +901,9 @@ javax/imageio/plugins/external_plugin_tests/TestClassPathPlugin.sh JBR-5363 wind
|
||||
|
||||
javax/accessibility/SlowPanelIteration/SlowPanelIteration.java JBR-870 windows-x64,linux-x64
|
||||
javax/swing/plaf/aqua/CustomComboBoxFocusTest.java JBR-6488 macosx-all
|
||||
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945 linux-all,macosx-all
|
||||
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945 macosx-all
|
||||
javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8253184,JBR-6727 windows-all,linux-all
|
||||
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8253184 windows-all
|
||||
javax/swing/plaf/basic/BasicTableHeaderUI/6394566/bug6394566.java JBR-5846 windows-all
|
||||
javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java 8233177 linux-all,windows-all
|
||||
javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java 8253184 linux-all,windows-all
|
||||
@@ -927,14 +924,10 @@ javax/swing/JButton/PressedButtonRightClickTest.java JBR-5210 windows-all
|
||||
javax/swing/JButton/TestMnemonicAction.java JBR-6508 windows-x64,linux-all
|
||||
javax/swing/JColorChooser/Test6524757.java JBR-5210 windows-all
|
||||
javax/swing/JColorChooser/Test6827032.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/4743225/bug4743225.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/6236162/bug6236162.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/6406264/bug6406264.java JBR-5210,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
javax/swing/JComboBox/6607130/bug6607130.java JBR-5799 windows-x64
|
||||
javax/swing/JComboBox/bug4890345.java JBR-5799 windows-all
|
||||
javax/swing/JComboBox/bug4924758.java JBR-5846 windows-all
|
||||
javax/swing/JComboBox/bug5029504.java JBR-5799 windows-all
|
||||
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java JBR-5210 windows-all
|
||||
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
|
||||
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
javax/swing/JLabel/4138746/JLabelMnemonicsTest.java JBR-4949 linux-all,windows-all
|
||||
@@ -957,18 +950,9 @@ javax/swing/JMenuItem/bug4839464.java JBR-5911 windows-all
|
||||
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 windows-all
|
||||
javax/swing/JOptionPane/7138665/bug7138665.java JBR-5799 windows-all
|
||||
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767 windows-all
|
||||
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
|
||||
javax/swing/JPopupMenu/4966112/bug4966112.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/6415145/bug6415145.java 8197552 windows-all
|
||||
javax/swing/JPopupMenu/6515446/bug6515446.java 8197552,JBR-6531 windows-all,linux-all
|
||||
javax/swing/JPopupMenu/6544309/bug6544309.java JBR-6532 windows-all,linux-all
|
||||
javax/swing/JPopupMenu/6675802/bug6675802.java JBR-5767 windows-all
|
||||
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956,JBR-6533 macosx-all,linux-all,windows-all
|
||||
javax/swing/JPopupMenu/6827786/bug6827786.java JBR-6657 linux-all,windows-x64
|
||||
javax/swing/JPopupMenu/6987844/bug6987844.java JBR-6718 linux-all,windows-all
|
||||
javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java JBR-6717 linux-all
|
||||
javax/swing/JPopupMenu/SetInvokerJPopupMenuTest.java JBR-6021 linux-all
|
||||
javax/swing/JRadioButton/8033699/bug8033699.java 8197552 windows-all
|
||||
javax/swing/JRadioButton/8075609/bug8075609.java 8197552,8266085,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
@@ -994,6 +978,9 @@ javax/swing/JButton/4659800/EnterKeyActivatesButton.java JBR-5210 windows-all
|
||||
javax/swing/JColorChooser/Test6541987.java JBR-5210 windows-all
|
||||
javax/swing/JColorChooser/Test7194184.java JBR-5210 windows-all
|
||||
javax/swing/JColorChooser/Test8051548.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/4743225/bug4743225.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/6236162/bug6236162.java JBR-5210 windows-all
|
||||
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java JBR-5210 windows-all
|
||||
javax/swing/JEditorPane/bug4714674.java JBR-5810 windows-all
|
||||
javax/swing/JComboBox/DisabledComboBoxFontTestAuto.java 8310072 linux-all,windows-all
|
||||
javax/swing/JEditorPane/JEditorPaneGCSwitchTest/JEditorPaneGCSwitchTest_i18n.java JBR-912 windows-all
|
||||
@@ -1011,6 +998,9 @@ javax/swing/JFileChooser/8194044/FileSystemRootTest.java JBR-5767 windows-all
|
||||
javax/swing/JFileChooser/ShellFolderQueries/ShellFolderQueriesSecurityManagerTest.java JBR-5767 windows-all
|
||||
javax/swing/JFrame/8016356/bug8016356.java JBR-108 windows-all
|
||||
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java JBR-5510 linux-5.18.2-arch1-1
|
||||
javax/swing/JPopupMenu/6675802/bug6675802.java JBR-5767 windows-all
|
||||
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956,JBR-6533 macosx-all,linux-all,windows-all
|
||||
javax/swing/JPopupMenu/6827786/bug6827786.java JBR-6657 linux-all,windows-x64
|
||||
javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java 8197552 windows-all
|
||||
javax/swing/JSplitPane/4885629/bug4885629.java 8019935,JBR-5510 macosx-all,linux-5.18.2-arch1-1
|
||||
javax/swing/JTabbedPane/4361477/bug4361477.java JBR-5932 linux-all
|
||||
@@ -1037,6 +1027,10 @@ javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 wind
|
||||
javax/swing/JInternalFrame/Test6325652.java JBR-6111 windows-all
|
||||
javax/swing/JInternalFrame/Test6505027.java JBR-5954 linux-all,osx-all
|
||||
javax/swing/JInternalFrame/Test6802868.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
|
||||
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
|
||||
javax/swing/JPopupMenu/4966112/bug4966112.java 8253184 windows-all
|
||||
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java JBR-5210 windows-all
|
||||
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765,JBR-5210 macosx-all,linux-all,windows-all
|
||||
javax/swing/JEditorPane/6917744/bug6917744.java 8213124 macosx-all
|
||||
@@ -1046,7 +1040,6 @@ javax/swing/JRootPane/4670486/bug4670486.java 8042381,8197552 macosx-all,windows
|
||||
javax/swing/JRootPane/DefaultButtonTest.java JBR-5739 windows-all,linux-all
|
||||
javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java JBR-5210 windows-all
|
||||
javax/swing/text/html/StyleSheet/bug4936917.java JBR-899,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java#id0 JBR-5799 windows-all
|
||||
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java#id1 JBR-5779 linux-all
|
||||
javax/swing/plaf/metal/MetalGradient/8163193/ButtonGradientTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
javax/swing/plaf/synth/7158712/bug7158712.java JBR-125 linux-all,windows-all
|
||||
@@ -1293,6 +1286,7 @@ java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java JBR-4880 windo
|
||||
java/awt/FullScreen/SetFSWindow/FSFrame.java 8253184 windows-all
|
||||
java/awt/grab/MenuDragEvents/MenuDragEvents.java JBR-4880 windows-all
|
||||
java/awt/image/mlib/MlibOpsTest.java JBR-5225 windows-all,windows-aarch64
|
||||
java/awt/image/multiresolution/MenuMultiresolutionIconTest.java JBR-4880,8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java JBR-4880 windows-all
|
||||
javax/swing/JFileChooser/8002077/bug8002077.java JBR-4880 windows-all
|
||||
javax/swing/JFileChooser/JFileChooserSetLocationTest.java 8295804 linux-all,macosx-all,windows-all
|
||||
@@ -1395,8 +1389,8 @@ jb/java/awt/CustomTitleBar/MaximizeWindowTest.java JBR-5465,JBR-5550 windows-all
|
||||
jb/java/awt/CustomTitleBar/MaximizedWindowFocusTest.java JBR-5828 windows-all
|
||||
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-5345 windows-x64
|
||||
jb/java/awt/CustomTitleBar/MouseEventsOnClientArea.java JBR-5910 windows-x64
|
||||
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5345 windows-all
|
||||
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5345 windows-all
|
||||
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5345 windows-x64
|
||||
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5345 windows-x64
|
||||
jb/java/awt/CustomTitleBar/WindowResizeTest.java JBR-5592 windows-all
|
||||
sanity/client/SwingSet/src/EditorPaneDemoTest.java 8212240,JBR-5510,JBR-6285,8253184 macosx-all,linux-all,windows-all
|
||||
sun/java2d/GdiRendering/ClipShapeRendering.java JBR-5510 linux-5.18.2-arch1-1
|
||||
@@ -1413,7 +1407,6 @@ javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-5510 linux-5.18.2-arch1-1
|
||||
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-5510 linux-5.18.2-arch1-1
|
||||
|
||||
jb/java/awt/Focus/BrokenTraversalAWT.java JBR-5799 windows-all
|
||||
jb/java/awt/Focus/ComplexFocusSequence.java JBR-6728 linux-x64,windows-x64
|
||||
jb/java/awt/Focus/ContextMenuAfterPopup.java JBR-5799 windows-all
|
||||
jb/java/awt/Focus/FocusTraversalOrderTest.java JBR-6060 generic-all
|
||||
jb/java/awt/Focus/FullScreenFocusStealing.java JBR-6246 macosx-all
|
||||
|
||||
@@ -3,7 +3,6 @@ java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java J
|
||||
java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java JBR-6027 windows-all
|
||||
java/awt/dnd/DnDAWTLockTest.java JBR-6442 linux-all
|
||||
java/awt/dnd/DragSourceGCrashTest.java JBR-6442 linux-all
|
||||
java/awt/dnd/DragOverDropTargetPerformanceTest.java JBR-5799 windows-x64
|
||||
java/awt/dnd/DropActionChangeTest.java JBR-6489,JBR-5799 generic-all
|
||||
java/awt/dnd/ImageTransferTest/ImageTransferTest.java JBR-6442 linux-all
|
||||
java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.java JBR-6442 linux-all
|
||||
@@ -53,7 +52,7 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
|
||||
javax/swing/JComboBox/TestComboBoxComponentRendering.java JBR-6100 linux-all
|
||||
javax/swing/JComponent/7154030/bug7154030.java JBR-6134 windows-x64
|
||||
javax/swing/JPopupMenu/6580930/bug6580930.java JBR-5071 linux-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6090,JBR-6360 linux-all,windows-all,macosx-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6090 linux-all,windows-all
|
||||
|
||||
jb/java/awt/event/MouseEvent/ReleaseAndClickModifiers.java JBR-6589 windows-all
|
||||
|
||||
@@ -70,7 +69,6 @@ java/awt/Paint/PaintNativeOnUpdate.java
|
||||
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java nobug generic-all
|
||||
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java nobug generic-all
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java nobug generic-all
|
||||
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java nobug generic-all
|
||||
jb/java/awt/CustomTitleBar/ActionListenerTest.java nobug generic-all
|
||||
jb/java/awt/CustomTitleBar/ChangeTitleBarHeightTest.java nobug generic-all
|
||||
jb/java/awt/CustomTitleBar/CheckFullScreen.java nobug generic-all
|
||||
|
||||
Reference in New Issue
Block a user