mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2026-01-24 09:20:50 +01:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f021bd777d | ||
|
|
13e217a8ca | ||
|
|
cbe5f7ac35 | ||
|
|
59735978d8 | ||
|
|
93f2675111 | ||
|
|
e73d5f140e | ||
|
|
ffbe1c85d4 | ||
|
|
f9ddafe25a | ||
|
|
f187ea1a07 | ||
|
|
ce21a7aeb3 | ||
|
|
1a58e7f6f0 | ||
|
|
fbee237cb5 | ||
|
|
779194185a |
@@ -660,14 +660,8 @@ JNI_COCOA_ENTER(env);
|
||||
jobject pageFormatArea = (*env)->CallObjectMethod(env, jthis, jm_getPageFormatArea, page); // AWT_THREADING Safe (!appKit)
|
||||
CHECK_EXCEPTION();
|
||||
|
||||
NSRect rect = JavaToNSRect(env, pageFormatArea);
|
||||
|
||||
__block PrinterView *printerView = nil;
|
||||
|
||||
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
|
||||
printerView = [[PrinterView alloc] initWithFrame:rect withEnv:env withPrinterJob:jthis];
|
||||
[printerView setFirstPage:firstPage lastPage:lastPage];
|
||||
}];
|
||||
PrinterView* printerView = [[PrinterView alloc] initWithFrame:JavaToNSRect(env, pageFormatArea) withEnv:env withPrinterJob:jthis];
|
||||
[printerView setFirstPage:firstPage lastPage:lastPage];
|
||||
|
||||
GET_NSPRINTINFO_METHOD_RETURN(NO)
|
||||
NSPrintInfo* printInfo = (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, jthis, sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object)
|
||||
|
||||
@@ -254,9 +254,13 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
||||
[blitEncoder endEncoding];
|
||||
|
||||
BOOL usePresentHandler = NO;
|
||||
NSUInteger drawableId = -1;
|
||||
|
||||
if (@available(macOS 10.15.4, *)) {
|
||||
usePresentHandler = YES;
|
||||
if (TRACE_DISPLAY) {
|
||||
drawableId = mtlDrawable.drawableID;
|
||||
}
|
||||
[self retain];
|
||||
[mtlDrawable addPresentedHandler:^(id <MTLDrawable> drawable) {
|
||||
// note: called anyway even if drawable.present() not called!
|
||||
@@ -301,7 +305,7 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
||||
if (TRACE_DISPLAY) {
|
||||
J2dRlsTraceLn3(J2D_TRACE_INFO,
|
||||
"[%.6lf] MTLLayer.blitTexture: layer[%p] present drawable(%d)",
|
||||
CACurrentMediaTime(), self, mtlDrawable.drawableID);
|
||||
CACurrentMediaTime(), self, drawableId);
|
||||
}
|
||||
if (isDisplaySyncEnabled()) {
|
||||
[commandBuf presentDrawable:mtlDrawable];
|
||||
@@ -334,7 +338,7 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
||||
if (TRACE_DISPLAY) {
|
||||
J2dRlsTraceLn3(J2D_TRACE_INFO,
|
||||
"[%.6lf] MTLLayer.blitTexture: layer[%p] commit with drawable(%d)",
|
||||
CACurrentMediaTime(), self, mtlDrawable.drawableID);
|
||||
CACurrentMediaTime(), self, drawableId);
|
||||
}
|
||||
} @finally {
|
||||
// try-finally block to ensure releasing the CPU fence:
|
||||
|
||||
@@ -55,6 +55,7 @@ import java.util.prefs.BackingStoreException;
|
||||
import java.util.prefs.Preferences;
|
||||
import sun.awt.InputMethodSupport;
|
||||
import sun.awt.SunToolkit;
|
||||
import sun.font.FontUtilities;
|
||||
|
||||
/**
|
||||
* {@code ExecutableInputMethodManager} is the implementation of the
|
||||
@@ -412,6 +413,12 @@ class ExecutableInputMethodManager extends InputMethodManager
|
||||
return candidate.deriveLocator(locale);
|
||||
}
|
||||
}
|
||||
|
||||
// Workaround for JBR-6764
|
||||
if (hostAdapterLocator != null && FontUtilities.isMacOSX) {
|
||||
return hostAdapterLocator.deriveLocator(locale);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <Trace.h>
|
||||
#include "jlong_md.h"
|
||||
#include "jvm_md.h"
|
||||
#include "jni_util.h"
|
||||
#include "VKBase.h"
|
||||
#include "VKVertex.h"
|
||||
#include "CArrayUtil.h"
|
||||
|
||||
@@ -193,6 +193,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_vulkan_VKRenderQueue_flushBuffer
|
||||
jint count = NEXT_INT(b);
|
||||
J2dRlsTraceLn(J2D_TRACE_VERBOSE,
|
||||
"VKRenderQueue_flushBuffer: FILL_SPANS");
|
||||
VKRenderer_FillSpans(color, dstOps, count, (jint *)b);
|
||||
SKIP_BYTES(b, count * BYTES_PER_SPAN);
|
||||
}
|
||||
break;
|
||||
@@ -207,67 +208,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_vulkan_VKRenderQueue_flushBuffer
|
||||
J2dRlsTraceLn6(J2D_TRACE_VERBOSE,
|
||||
"VKRenderQueue_flushBuffer: FILL_PARALLELOGRAM(%f, %f, %f, %f, %f, %f)",
|
||||
x11, y11, dx21, dy21, dx12, dy12);
|
||||
|
||||
if (dstOps != NULL) {
|
||||
VKSDOps *vksdOps = (VKSDOps *)dstOps;
|
||||
VKGraphicsEnvironment* ge = VKGE_graphics_environment();
|
||||
VKLogicalDevice* logicalDevice = &ge->devices[ge->enabledDeviceNum];
|
||||
float width = vksdOps->width;
|
||||
float height = vksdOps->height;
|
||||
J2dRlsTraceLn2(J2D_TRACE_VERBOSE,
|
||||
"VKRenderQueue_flushBuffer: FILL_PARALLELOGRAM(W=%f, H=%f)",
|
||||
width, height);
|
||||
VKVertex* vertices = ARRAY_ALLOC(VKVertex, 4);
|
||||
/* dx21
|
||||
* (p1)---------(p2) | (p1)------
|
||||
* |\ \ | | \ dy21
|
||||
* | \ \ | dy12 | \
|
||||
* | \ \| | (p2)-
|
||||
* | (p4)---------(p3) (p4) |
|
||||
* dx12 \ | dy12
|
||||
* dy21 \ |
|
||||
* -----(p3)
|
||||
*/
|
||||
float p1x = -1.0f + x11 / width;
|
||||
float p1y = -1.0f + y11 / height;
|
||||
float p2x = -1.0f + (x11 + dx21) / width;
|
||||
float p2y = -1.0f + (y11 + dy21) / height;
|
||||
float p3x = -1.0f + (x11 + dx21 + dx12) / width;
|
||||
float p3y = -1.0f + (y11 + dy21 + dy12) / height;
|
||||
float p4x = -1.0f + (x11 + dx12) / width;
|
||||
float p4y = -1.0f + (y11 + dy12) / height;
|
||||
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p1x,p1y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p2x,p2y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p4x,p4y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p3x,p3y}));
|
||||
|
||||
VKBuffer* fillVertexBuffer = ARRAY_TO_VERTEX_BUF(vertices);
|
||||
if (!fillVertexBuffer) {
|
||||
J2dRlsTrace(J2D_TRACE_ERROR, "Cannot create vertex buffer\n")
|
||||
break;
|
||||
}
|
||||
ARRAY_FREE(vertices);
|
||||
|
||||
ge->vkWaitForFences(logicalDevice->device, 1, &logicalDevice->inFlightFence, VK_TRUE, UINT64_MAX);
|
||||
ge->vkResetFences(logicalDevice->device, 1, &logicalDevice->inFlightFence);
|
||||
|
||||
ge->vkResetCommandBuffer(logicalDevice->commandBuffer, 0);
|
||||
|
||||
VKRenderer_BeginRendering();
|
||||
|
||||
VKRenderer_ColorRender(
|
||||
vksdOps->image,
|
||||
color,
|
||||
fillVertexBuffer->buffer, 4
|
||||
);
|
||||
|
||||
VKRenderer_EndRendering(VK_FALSE, VK_FALSE);
|
||||
}
|
||||
VKRenderer_FillParallelogram(color, dstOps, x11, y11, dx21, dy21, dx12, dy12);
|
||||
}
|
||||
break;
|
||||
case sun_java2d_pipe_BufferedOpCodes_FILL_AAPARALLELOGRAM:
|
||||
|
||||
@@ -363,7 +363,7 @@ VKRenderer* VKRenderer_CreateFillColorPoly() {
|
||||
|
||||
VkPipelineInputAssemblyStateCreateInfo inputAssembly = {
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
|
||||
.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
|
||||
.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
|
||||
.primitiveRestartEnable = VK_FALSE
|
||||
};
|
||||
|
||||
@@ -863,6 +863,152 @@ VKRenderer_FillRect(jint x, jint y, jint w, jint h)
|
||||
}
|
||||
}
|
||||
|
||||
void VKRenderer_FillParallelogram(jint color, VKSDOps *dstOps,
|
||||
jfloat x11, jfloat y11,
|
||||
jfloat dx21, jfloat dy21,
|
||||
jfloat dx12, jfloat dy12)
|
||||
{
|
||||
if (dstOps == NULL) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "VKRenderer_FillParallelogram: current dest is null");
|
||||
return;
|
||||
}
|
||||
|
||||
VKSDOps *vksdOps = (VKSDOps *)dstOps;
|
||||
VKGraphicsEnvironment* ge = VKGE_graphics_environment();
|
||||
VKLogicalDevice* logicalDevice = &ge->devices[ge->enabledDeviceNum];
|
||||
float width = vksdOps->width;
|
||||
float height = vksdOps->height;
|
||||
J2dRlsTraceLn2(J2D_TRACE_VERBOSE,
|
||||
"VKRenderQueue_flushBuffer: FILL_PARALLELOGRAM(W=%f, H=%f)",
|
||||
width, height);
|
||||
VKVertex* vertices = ARRAY_ALLOC(VKVertex, 6);
|
||||
/* dx21
|
||||
* (p1)---------(p2) | (p1)------
|
||||
* |\ \ | | \ dy21
|
||||
* | \ \ | dy12 | \
|
||||
* | \ \| | (p2)-
|
||||
* | (p4)---------(p3) (p4) |
|
||||
* dx12 \ | dy12
|
||||
* dy21 \ |
|
||||
* -----(p3)
|
||||
*/
|
||||
float p1x = -1.0f + x11 / width;
|
||||
float p1y = -1.0f + y11 / height;
|
||||
float p2x = -1.0f + (x11 + dx21) / width;
|
||||
float p2y = -1.0f + (y11 + dy21) / height;
|
||||
float p3x = -1.0f + (x11 + dx21 + dx12) / width;
|
||||
float p3y = -1.0f + (y11 + dy21 + dy12) / height;
|
||||
float p4x = -1.0f + (x11 + dx12) / width;
|
||||
float p4y = -1.0f + (y11 + dy12) / height;
|
||||
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p1x,p1y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p2x,p2y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p3x,p3y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p3x,p3y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p4x,p4y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p1x,p1y}));
|
||||
|
||||
VKBuffer* fillVertexBuffer = ARRAY_TO_VERTEX_BUF(vertices);
|
||||
if (!fillVertexBuffer) {
|
||||
J2dRlsTrace(J2D_TRACE_ERROR, "Cannot create vertex buffer\n")
|
||||
return;
|
||||
}
|
||||
ARRAY_FREE(vertices);
|
||||
|
||||
ge->vkWaitForFences(logicalDevice->device, 1, &logicalDevice->inFlightFence, VK_TRUE, UINT64_MAX);
|
||||
ge->vkResetFences(logicalDevice->device, 1, &logicalDevice->inFlightFence);
|
||||
|
||||
ge->vkResetCommandBuffer(logicalDevice->commandBuffer, 0);
|
||||
|
||||
VKRenderer_BeginRendering();
|
||||
|
||||
VKRenderer_ColorRender(
|
||||
vksdOps->image,
|
||||
color,
|
||||
fillVertexBuffer->buffer, 6
|
||||
);
|
||||
|
||||
VKRenderer_EndRendering(VK_FALSE, VK_FALSE);
|
||||
}
|
||||
|
||||
void VKRenderer_FillSpans(jint color, VKSDOps *dstOps, jint spanCount, jint *spans)
|
||||
{
|
||||
if (dstOps == NULL) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "VKRenderer_FillSpans: current dest is null");
|
||||
return;
|
||||
}
|
||||
|
||||
if (spanCount == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
VKSDOps *vksdOps = (VKSDOps *)dstOps;
|
||||
VKGraphicsEnvironment* ge = VKGE_graphics_environment();
|
||||
VKLogicalDevice* logicalDevice = &ge->devices[ge->enabledDeviceNum];
|
||||
float width = vksdOps->width;
|
||||
float height = vksdOps->height;
|
||||
J2dRlsTraceLn3(J2D_TRACE_VERBOSE, "VKRenderer_FillSpans(W=%f, H=%f, COUNT=%d)",
|
||||
width, height, spanCount)
|
||||
|
||||
const int VERT_COUNT = spanCount * 6;
|
||||
VKVertex* vertices = ARRAY_ALLOC(VKVertex, VERT_COUNT);
|
||||
for (int i = 0; i < spanCount; i++) {
|
||||
jfloat x1 = *(spans++);
|
||||
jfloat y1 = *(spans++);
|
||||
jfloat x2 = *(spans++);
|
||||
jfloat y2 = *(spans++);
|
||||
|
||||
float p1x = -1.0f + x1 / width;
|
||||
float p1y = -1.0f + y1 / height;
|
||||
float p2x = -1.0f + x2 / width;
|
||||
float p2y = p1y;
|
||||
float p3x = p2x;
|
||||
float p3y = -1.0f + y2 / height;
|
||||
float p4x = p1x;
|
||||
float p4y = p3y;
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p1x,p1y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p2x,p2y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p3x,p3y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p3x,p3y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p4x,p4y}));
|
||||
|
||||
ARRAY_PUSH_BACK(&vertices, ((VKVertex){p1x,p1y}));
|
||||
}
|
||||
|
||||
VKBuffer *fillVertexBuffer = ARRAY_TO_VERTEX_BUF(vertices);
|
||||
if (!fillVertexBuffer) {
|
||||
J2dRlsTrace(J2D_TRACE_ERROR, "Cannot create vertex buffer\n")
|
||||
return;
|
||||
}
|
||||
ARRAY_FREE(vertices);
|
||||
|
||||
ge->vkWaitForFences(logicalDevice->device, 1, &logicalDevice->inFlightFence, VK_TRUE, UINT64_MAX);
|
||||
ge->vkResetFences(logicalDevice->device, 1, &logicalDevice->inFlightFence);
|
||||
|
||||
ge->vkResetCommandBuffer(logicalDevice->commandBuffer, 0);
|
||||
|
||||
VKRenderer_BeginRendering();
|
||||
|
||||
VKRenderer_ColorRender(
|
||||
vksdOps->image,
|
||||
color,
|
||||
fillVertexBuffer->buffer, VERT_COUNT
|
||||
);
|
||||
|
||||
VKRenderer_EndRendering(VK_FALSE, VK_FALSE);
|
||||
}
|
||||
|
||||
jboolean VK_CreateLogicalDeviceRenderers() {
|
||||
VKGraphicsEnvironment* ge = VKGE_graphics_environment();
|
||||
VKLogicalDevice* logicalDevice = &ge->devices[ge->enabledDeviceNum];
|
||||
|
||||
@@ -44,5 +44,10 @@ void VKRenderer_ColorRender(VKImage *destImage, uint32_t rgba, VkBuffer vertexBu
|
||||
void VKRenderer_ColorRenderMaxRect(VKImage *destImage, uint32_t rgba);
|
||||
// fill ops
|
||||
void VKRenderer_FillRect(jint x, jint y, jint w, jint h);
|
||||
void VKRenderer_FillParallelogram(jint color, VKSDOps *dstOps,
|
||||
jfloat x11, jfloat y11,
|
||||
jfloat dx21, jfloat dy21,
|
||||
jfloat dx12, jfloat dy12);
|
||||
void VKRenderer_FillSpans(jint color, VKSDOps *dstOps, jint spanCount, jint *spans);
|
||||
|
||||
#endif //VKRenderer_h_Included
|
||||
|
||||
@@ -1355,24 +1355,47 @@ class XWindow extends XBaseWindow implements X11ComponentPeer {
|
||||
unicodeFromPrimaryKeysym,
|
||||
jkeyExtended);
|
||||
|
||||
|
||||
if (unicodeKey > 0 && !isDeadKey) {
|
||||
if (keyEventLog.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
keyEventLog.fine("fire _TYPED on "+unicodeKey);
|
||||
}
|
||||
postKeyEvent( java.awt.event.KeyEvent.KEY_TYPED,
|
||||
java.awt.event.KeyEvent.VK_UNDEFINED,
|
||||
unicodeKey,
|
||||
java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN,
|
||||
ev.get_state(),ev.getPData(), XKeyEvent.getSize(), (long)0,
|
||||
unicodeFromPrimaryKeysym,
|
||||
java.awt.event.KeyEvent.VK_UNDEFINED);
|
||||
|
||||
if (shouldPostKeyTypedAfterKeyPressed(isDeadKey ? jkeyExtended : jkeyToReturn, ev.get_state(), unicodeKey, isDeadKey)) {
|
||||
if (keyEventLog.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
keyEventLog.fine("fire _TYPED on "+unicodeKey);
|
||||
}
|
||||
postKeyEvent( java.awt.event.KeyEvent.KEY_TYPED,
|
||||
java.awt.event.KeyEvent.VK_UNDEFINED,
|
||||
unicodeKey,
|
||||
java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN,
|
||||
ev.get_state(),ev.getPData(), XKeyEvent.getSize(), (long)0,
|
||||
unicodeFromPrimaryKeysym,
|
||||
java.awt.event.KeyEvent.VK_UNDEFINED);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static boolean shouldPostKeyTypedAfterKeyPressed(int jKeyCode, int xModifiers, int jKeyChar, boolean isDeadKey) {
|
||||
/*
|
||||
* Quoting the X11 specification (https://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html#Manipulating_the_Keyboard_Encoding):
|
||||
* > A list of KeySyms is associated with each KeyCode.
|
||||
* > [...]
|
||||
* > The first four elements of the list are split into two groups of KeySyms. Group 1 contains the first and second KeySyms; Group 2 contains the third and fourth KeySyms.
|
||||
* > [...]
|
||||
* > Switching between groups is controlled by the KeySym named MODE SWITCH
|
||||
* > [...]
|
||||
* > Within a group, the choice of KeySym is determined by applying the first rule that is satisfied from the following list:
|
||||
* > <Usages of the numlock, Shift, Lock>
|
||||
* Thus I believe a key press can produce characters only if a subset of the above-mentioned modifiers has been used.
|
||||
* Therefore, we should ignore any key presses if they have used any modifier out of this set,
|
||||
* but I'm too afraid to totally break some exotic input, so let's apply this filter only to Enter for now.
|
||||
*/
|
||||
final var allLayoutLevelPossibleModifiers = XConstants.ShiftMask | XConstants.LockMask | XToolkit.modeSwitchMask | XToolkit.numLockMask;
|
||||
// Control is historically used to enter control characters (ASCII [0x01; 0x1F])
|
||||
final var allInputPossibleModifiers = allLayoutLevelPossibleModifiers | XConstants.ControlMask;
|
||||
|
||||
return (
|
||||
!isDeadKey &&
|
||||
(jKeyChar > 0) &&
|
||||
!( (jKeyCode == KeyEvent.VK_ENTER) && ((xModifiers | allInputPossibleModifiers) != allInputPossibleModifiers) )
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public void handleKeyRelease(XEvent xev) {
|
||||
super.handleKeyRelease(xev);
|
||||
XKeyEvent ev = xev.get_xkey();
|
||||
@@ -1663,6 +1686,8 @@ class XWindow extends XBaseWindow implements X11ComponentPeer {
|
||||
int unicodeFromPrimaryKeysym, int extendedKeyCode)
|
||||
|
||||
{
|
||||
assert( (id != KeyEvent.KEY_TYPED) || shouldPostKeyTypedAfterKeyPressed(keyCode, state, keyChar, false) );
|
||||
|
||||
long jWhen = System.currentTimeMillis();
|
||||
int modifiers = getModifiers(state, 0, keyCode);
|
||||
|
||||
|
||||
@@ -152,6 +152,9 @@ public final class WLClipboard extends SunClipboard {
|
||||
String[] mime = new String[formats.length];
|
||||
for (int i = 0; i < formats.length; i++) {
|
||||
mime[i] = wlDataTransferer.getNativeForFormat(formats[i]);
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
log.fine("Clipboard: formats mapping " + formats[i] + " -> " + mime[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
|
||||
@@ -512,7 +512,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
// Wayland provides the ability to programmatically change the location of popups,
|
||||
// but not top-level windows.
|
||||
if (targetIsWlPopup()) {
|
||||
repositionWlPopup(newX, newY);
|
||||
repositionWlPopup(newX, newY, newSize.width, newSize.height);
|
||||
// the location will be updated in notifyConfigured() following
|
||||
// the xdg_popup::repositioned event
|
||||
} else {
|
||||
@@ -550,9 +550,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
}
|
||||
|
||||
private void repositionWlPopup(int newX, int newY) {
|
||||
final int thisWidth = getWidth();
|
||||
final int thisHeight = getHeight();
|
||||
private void repositionWlPopup(int newX, int newY, int newWidth, int newHeight) {
|
||||
performLocked(() -> {
|
||||
Window popup = (Window) target;
|
||||
final Component popupParent = AWTAccessor.getWindowAccessor().getPopupParent(popup);
|
||||
@@ -566,6 +564,8 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
final int parentY = javaUnitsToSurfaceUnits(toplevelLocation.y);
|
||||
int newXNative = javaUnitsToSurfaceUnits(newX);
|
||||
int newYNative = javaUnitsToSurfaceUnits(newY);
|
||||
int newWidthNative = javaUnitsToSurfaceUnits(newWidth);
|
||||
int newHeightNative = javaUnitsToSurfaceUnits(newHeight);
|
||||
if (popupLog.isLoggable(Level.FINE)) {
|
||||
popupLog.fine("Repositioning popup: " + popup);
|
||||
popupLog.fine("\tparent:" + popupParent);
|
||||
@@ -573,7 +573,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
popupLog.fine("\toffset of anchor from toplevel: " + toplevelLocation);
|
||||
popupLog.fine("\toffset from anchor: " + newX + ", " + newY);
|
||||
}
|
||||
nativeRepositionWLPopup(nativePtr, thisWidth, thisHeight, parentX + newXNative, parentY + newYNative);
|
||||
nativeRepositionWLPopup(nativePtr, newWidthNative, newHeightNative, parentX + newXNative, parentY + newYNative);
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
@@ -39,12 +39,18 @@ import javax.imageio.stream.ImageInputStream;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.datatransfer.DataFlavor;
|
||||
import java.awt.datatransfer.Transferable;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.awt.image.WritableRaster;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
@@ -177,11 +183,53 @@ public class WLDataTransferer extends DataTransferer {
|
||||
|
||||
@Override
|
||||
protected String[] dragQueryFile(byte[] bytes) {
|
||||
// TODO
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
log.fine("Unimplemented");
|
||||
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
|
||||
// NB: decodes what was encoded in convertFileListToBytes()
|
||||
String line = reader.readLine();
|
||||
return line.split("\0");
|
||||
} catch (IOException ignored) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isURIListFormat(long format) {
|
||||
String nat = getNativeForFormat(format);
|
||||
if (nat == null) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
DataFlavor df = new DataFlavor(nat);
|
||||
if (df.getPrimaryType().equals("text") && df.getSubType().equals("uri-list")) {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Not a MIME format.
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected URI[] dragQueryURIs(InputStream stream,
|
||||
long format,
|
||||
Transferable localeTransferable)
|
||||
throws IOException {
|
||||
String charset = getBestCharsetForTextFormat(format, localeTransferable);
|
||||
try (InputStreamReader isr = new InputStreamReader(stream, charset);
|
||||
BufferedReader reader = new BufferedReader(isr)) {
|
||||
// NB: decodes what was encoded in DataTransferer.translateTransferable()
|
||||
String line;
|
||||
ArrayList<URI> uriList = new ArrayList<>();
|
||||
while ((line = reader.readLine()) != null) {
|
||||
try {
|
||||
uriList.add(new URI(line));
|
||||
} catch (URISyntaxException uriSyntaxException) {
|
||||
throw new IOException(uriSyntaxException);
|
||||
}
|
||||
}
|
||||
return uriList.toArray(new URI[0]);
|
||||
}
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1003,10 +1003,18 @@ WLSBM_SurfaceAssign(WLSurfaceBufferManager * manager, struct wl_surface* wl_surf
|
||||
MUTEX_LOCK(manager->showLock);
|
||||
if (manager->wlSurface == NULL || wl_surface == NULL) {
|
||||
manager->wlSurface = wl_surface;
|
||||
manager->sendBufferASAP = true; // ...so that this new surface association is made known to Wayland
|
||||
// The "frame" callback depends on the surface; when changing the surface,
|
||||
// cancel any associated pending callbacks:
|
||||
CancelFrameCallback(manager);
|
||||
if (wl_surface != NULL) {
|
||||
// Must send whatever there is in the buffer right now, at a minimum
|
||||
// in order to associate the surface with a buffer and make it appear
|
||||
// on the screen. Normally this would happen in WLSBM_SurfaceCommit(),
|
||||
// but the Java side may have already drawn and committed something and
|
||||
// will not commit anything new for a while, in which case the surface
|
||||
// may never get associated with a buffer and the window will never appear.
|
||||
TrySendShowBufferToWayland(manager, true);
|
||||
}
|
||||
} else {
|
||||
assert(manager->wlSurface == wl_surface);
|
||||
}
|
||||
@@ -1144,8 +1152,8 @@ WLSBM_SizeChangeTo(WLSurfaceBufferManager * manager, jint width, jint height)
|
||||
manager->bufferForDraw.height = height;
|
||||
manager->bufferForDraw.resizePending = true;
|
||||
|
||||
// Send the buffer at the nearest commit or else Mutter may not remember
|
||||
// the latest size of the window.
|
||||
// Send the buffer at the nearest commit as we want to make the change in size
|
||||
// visible to the user.
|
||||
manager->sendBufferASAP = true;
|
||||
|
||||
// Need to wait for WLSBM_SurfaceCommit() with the new content for
|
||||
|
||||
@@ -1874,8 +1874,14 @@ LRESULT AwtComponent::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
LOWORD(lParam), HIWORD(lParam), FALSE);
|
||||
break;
|
||||
case WM_SYSCHAR:
|
||||
mr = WmChar(static_cast<UINT>(wParam),
|
||||
LOWORD(lParam), HIWORD(lParam), TRUE);
|
||||
// JBR-7157: Alt+Shift+Enter sends KEY_TYPED Event
|
||||
// Alt[+Shift]+letter generate input only as WM_SYSCHAR messages.
|
||||
// We shouldn't treat them as real user input, according to MSDN: https://learn.microsoft.com/en-us/windows/win32/learnwin32/keyboard-input#character-messages.
|
||||
// > The WM_SYSCHAR message indicates a system character. As with WM_SYSKEYDOWN, you should generally pass
|
||||
// > this message directly to DefWindowProc. Otherwise, you may interfere with standard system commands.
|
||||
// > In particular, do not treat WM_SYSCHAR as text that the user has typed.
|
||||
|
||||
mr = mrDoDefault;
|
||||
break;
|
||||
case WM_IME_CHAR:
|
||||
mr = WmIMEChar(static_cast<UINT>(wParam),
|
||||
|
||||
@@ -73,6 +73,7 @@ gc/shenandoah/mxbeans/TestChurnNotifications.java#iu initial_run linux-x64
|
||||
|
||||
compiler/ciReplay/TestSAServer.java 8029528 generic-all
|
||||
compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java 8225370 generic-all
|
||||
compiler/gcbarriers/UnsafeIntrinsicsTest.java#ZGenerationalDebug 8334475 windows-aarch64
|
||||
compiler/jvmci/compilerToVM/GetFlagValueTest.java 8204459 generic-all
|
||||
|
||||
compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java 8190680 generic-all
|
||||
@@ -136,6 +137,7 @@ runtime/cds/appcds/methodHandles/MethodHandlesInvokersTest.java initial_run gene
|
||||
runtime/cds/appcds/methodHandles/MethodHandlesCastFailureTest.java initial_run generic-all
|
||||
runtime/cds/appcds/methodHandles/MethodHandlesGeneralTest.java initial_run generic-all
|
||||
runtime/cds/CheckDefaultArchiveFile.java JBR-4227 generic-all
|
||||
runtime/cds/TestCDSVMCrash.java JBR-7316 windows-aarch64
|
||||
runtime/jni/daemonDestroy/TestDaemonDestroy.java NOBUG windows-all # Expected to get exit value of [0], exit value is: [-1073741515]
|
||||
runtime/jni/terminatedThread/TestTerminatedThread.java 8317789 aix-ppc64
|
||||
runtime/handshake/HandshakeSuspendExitTest.java 8294313 generic-all
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
/*
|
||||
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright 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 Checks that Alt+Shift+Enter does not generate KEY_TYPED event(s) on Windows and Linux (X11) (JBR-7157)
|
||||
* @author Nikita Provotorov
|
||||
* @requires (os.family == "windows" | os.family == "linux")
|
||||
* @key headful
|
||||
* @run main/othervm AltShiftEnterShouldNotSendKeyTyped7157
|
||||
*/
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public class AltShiftEnterShouldNotSendKeyTyped7157 extends Frame {
|
||||
private final TextArea textArea;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
if ("WLToolkit".equals(Toolkit.getDefaultToolkit().getClass().getSimpleName())) {
|
||||
System.out.println("The test isn't targeting at Wayland. Skipping it since WLToolkit is being used...");
|
||||
return;
|
||||
}
|
||||
|
||||
final var robot = new Robot();
|
||||
final AtomicReference<AltShiftEnterShouldNotSendKeyTyped7157> windowRef = new AtomicReference<>(null);
|
||||
|
||||
try {
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
final var window = new AltShiftEnterShouldNotSendKeyTyped7157();
|
||||
windowRef.set(window);
|
||||
|
||||
window.setVisible(true);
|
||||
});
|
||||
|
||||
runTest(robot, windowRef.get());
|
||||
} finally {
|
||||
final var window = windowRef.getAndSet(null);
|
||||
if (window != null) {
|
||||
window.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private AltShiftEnterShouldNotSendKeyTyped7157() {
|
||||
super("JBR-7157");
|
||||
|
||||
textArea = new TextArea();
|
||||
add(textArea, BorderLayout.CENTER);
|
||||
setSize(400, 400);
|
||||
}
|
||||
|
||||
|
||||
private static void runTest(final Robot robot, final AltShiftEnterShouldNotSendKeyTyped7157 window) throws Exception {
|
||||
final CompletableFuture<Void> focusGainedFuture = new CompletableFuture<>();
|
||||
final AtomicBoolean gotFocusLostEvent = new AtomicBoolean(false);
|
||||
final Collection<KeyEvent> allReceivedKeyTypedEvents = Collections.synchronizedList(new ArrayList<>());
|
||||
|
||||
// Installing listeners and requesting focus
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
window.textArea.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e) {
|
||||
System.err.println("Got KEY_TYPED event: " + e);
|
||||
new Throwable("Stacktrace").printStackTrace();
|
||||
|
||||
allReceivedKeyTypedEvents.add(e);
|
||||
}
|
||||
});
|
||||
|
||||
window.textArea.addFocusListener(new FocusListener() {
|
||||
@Override
|
||||
public void focusGained(FocusEvent e) {
|
||||
focusGainedFuture.complete(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focusLost(FocusEvent e) {
|
||||
if (gotFocusLostEvent.compareAndExchange(false, true) == false) {
|
||||
System.err.println("Unexpectedly lost focus! " + e);
|
||||
new Throwable("Stacktrace").printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (window.textArea.isFocusOwner()) {
|
||||
focusGainedFuture.complete(null);
|
||||
} else {
|
||||
window.textArea.requestFocus();
|
||||
}
|
||||
});
|
||||
|
||||
// Waiting for the focus
|
||||
focusGainedFuture.get(2, TimeUnit.SECONDS);
|
||||
|
||||
robot.delay(100);
|
||||
|
||||
// Pressing Alt+Shift+Enter
|
||||
robot.keyPress(KeyEvent.VK_ALT);
|
||||
try {
|
||||
robot.delay(100);
|
||||
|
||||
robot.keyPress(KeyEvent.VK_SHIFT);
|
||||
try {
|
||||
robot.delay(100);
|
||||
|
||||
robot.keyPress(KeyEvent.VK_ENTER);
|
||||
robot.delay(100);
|
||||
|
||||
robot.keyRelease(KeyEvent.VK_ENTER);
|
||||
robot.delay(50);
|
||||
} finally {
|
||||
robot.keyRelease(KeyEvent.VK_SHIFT);
|
||||
robot.delay(50);
|
||||
}
|
||||
} finally {
|
||||
robot.keyRelease(KeyEvent.VK_ALT);
|
||||
robot.delay(100);
|
||||
}
|
||||
|
||||
robot.waitForIdle();
|
||||
|
||||
// CAS instead of just .get() to avoid false positive messages from the focus listener
|
||||
if (gotFocusLostEvent.compareAndExchange(false, true) == true) {
|
||||
throw new RuntimeException("Focus has been unexpectedly lost");
|
||||
}
|
||||
|
||||
if (!allReceivedKeyTypedEvents.isEmpty()) {
|
||||
throw new RuntimeException("Got some KEY_TYPED events: " + allReceivedKeyTypedEvents);
|
||||
}
|
||||
}
|
||||
}
|
||||
98
test/jdk/jb/javax/swing/Popup/WLPopupResize.java
Normal file
98
test/jdk/jb/javax/swing/Popup/WLPopupResize.java
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2024, JetBrains s.r.o.. All rights reserved.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JWindow;
|
||||
import javax.swing.SwingUtilities;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Robot;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.Window;
|
||||
|
||||
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @summary Verifies that the size of a popup-style window can be changed
|
||||
* under Wayland
|
||||
* @requires os.family == "linux"
|
||||
* @key headful
|
||||
* @modules java.desktop/sun.awt
|
||||
* @run main WLPopupResize
|
||||
*/
|
||||
public class WLPopupResize {
|
||||
private static JFrame frame;
|
||||
private static JWindow popup;
|
||||
|
||||
private static void createAndShowUI() {
|
||||
frame = new JFrame("WLPopupResize Test");
|
||||
frame.setSize(300, 200);
|
||||
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private static void showPopup() {
|
||||
JPanel popupContents = new JPanel();
|
||||
popupContents.add(new JLabel("test popup"));
|
||||
popup = new JWindow(frame);
|
||||
popup.setType(Window.Type.POPUP);
|
||||
sun.awt.AWTAccessor.getWindowAccessor().setPopupParent(popup, frame);
|
||||
popup.setSize(100, 50);
|
||||
popup.add(popupContents);
|
||||
popup.setVisible(true);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Toolkit toolkit = Toolkit.getDefaultToolkit();
|
||||
if (!toolkit.getClass().getName().equals("sun.awt.wl.WLToolkit")) {
|
||||
System.out.println("The test makes sense only for WLToolkit. Exiting...");
|
||||
return;
|
||||
}
|
||||
|
||||
Robot robot = new Robot();
|
||||
|
||||
SwingUtilities.invokeAndWait(WLPopupResize::createAndShowUI);
|
||||
pause(robot);
|
||||
|
||||
SwingUtilities.invokeAndWait(WLPopupResize::showPopup);
|
||||
pause(robot);
|
||||
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
popup.setBounds(10, 20, 120, 80);
|
||||
});
|
||||
pause(robot);
|
||||
|
||||
Dimension newSize = popup.getSize();
|
||||
if (newSize.width != 120 || newSize.height != 80) {
|
||||
throw new RuntimeException("Wrong popup size: " + newSize.width + ", " + newSize.height);
|
||||
}
|
||||
}
|
||||
|
||||
private static void pause(Robot robot) {
|
||||
robot.waitForIdle();
|
||||
robot.delay(500);
|
||||
}
|
||||
}
|
||||
@@ -67,6 +67,7 @@ javax/swing/JTree/4618767/JTreeSelectedElementTest.java JBR-5397 macosx-all
|
||||
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java JBR-5397 macosx-all
|
||||
javax/swing/plaf/aqua/JInternalFrameBorderTest.java JBR-5397 macosx-all
|
||||
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8253184,JBR-6727,JBR-5397 windows-all,linux-all,macosx-all
|
||||
javax/swing/plaf/basic/BasicRootPaneUI/HiddenDefaultButtonTest.java JBR-7310 windows-x64
|
||||
javax/swing/plaf/synth/7158712/bug7158712.java JBR-125,8322653,JBR-5397 linux-all,windows-all,macosx-all
|
||||
javax/swing/Popup/TaskbarPositionTest.java 8310689,JBR-5397 windows-all,macosx-all
|
||||
javax/swing/text/CSSBorder/6796710/bug6796710.java JBR-5397,JBR-6465 macosx-all,windows-all,linux-aarch64
|
||||
@@ -79,8 +80,8 @@ java/awt/Focus/NullActiveWindowOnFocusLost/NullActiveWindowOnFocusLost.java JBR-
|
||||
java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java JBR-5397 macosx-all
|
||||
java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java 7019055,8266245,JBR-5397 windows-all,linux-all,macosx-aarch64,macosx-all
|
||||
java/awt/List/ListMultipleSelectTest/ListMultipleSelectTest.java JBR-5555,JBR-5397 windows-all,macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowTest.java JBR-5397 macosx-all
|
||||
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java JBR-5397 macosx-all
|
||||
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8253184,JBR-5397 macosx-all,windows-all
|
||||
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java 8253184,JBR-5709 windows-all,linux-all
|
||||
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java 8253184,JBR-6752,JBR-5397 windows-all,linux-all,macosx-all
|
||||
java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersInKeyEvent.java JBR-5397 macosx-all
|
||||
java/awt/Paint/PaintNativeOnUpdate.java JBR-5397 macosx-all
|
||||
@@ -121,6 +122,7 @@ java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java 8233568,J
|
||||
java/awt/Focus/6378278/InputVerifierTest.java JBR-5505 windows-all
|
||||
java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 8169110,JBR-5505 linux-all,windows-all
|
||||
java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.java JBR-5505 windows-all
|
||||
java/awt/Frame/DisposeStressTest/DisposeStressTest.java JBR-7331 windows-all
|
||||
java/awt/Frame/WindowDragTest/WindowDragTest.java JBR-5505 windows-all
|
||||
java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java JBR-5505 windows-all
|
||||
java/awt/hidpi/DrawOnFrameGraphicsTest.java JBR-5505 windows-all
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
java/awt/image/multiresolution/MultiresolutionIconTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Paint/PaintNativeOnUpdate.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Window/FullWindowContentTest/FullWindowContentRenderTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-7312 macosx-all
|
||||
java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
java/awt/Window/WindowTitleVisibleTest/WindowTitleVisibleTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
javax/swing/JButton/8151303/PressedIconTest.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
javax/swing/JComponent/7154030/bug7154030.java JBR-7146 macosx-12.7.4,macosx-12.7.5,macosx-12.7.6
|
||||
|
||||
@@ -4,6 +4,7 @@ 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 linux-all
|
||||
java/awt/event/ComponentEvent/TextComponentTextEventTest.java JBR-7141 windows-x64
|
||||
java/awt/event/KeyEvent/KeyEventLocationTest.java JBR-5916,JBR-7141 linux-all,windows-all
|
||||
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058,JBR-6664 windows-all,linux-all,macosx-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
|
||||
|
||||
@@ -6,6 +6,7 @@ java/awt/datatransfer/Independence/IndependenceAWTTest.java initial_runs generic
|
||||
java/awt/datatransfer/Independence/IndependenceSwingTest.java initial_runs generic-all
|
||||
java/awt/event/ComponentEvent/ListItemEventsTest.java initial_runs generic-all
|
||||
java/awt/Focus/6401036/InputVerifierTest2.java initial_runs generic-all #intermittent
|
||||
java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java JBR-7311 linux-all
|
||||
java/awt/Focus/TestWindowsLFFocus.java initial_runs generic-all
|
||||
java/awt/font/ComplexEmoji.java initial_runs generic-all
|
||||
java/awt/font/EmojiVariation.java initial_runs generic-all
|
||||
@@ -22,6 +23,7 @@ java/awt/image/DrawImage/SimpleUnmanagedImage.java initial_runs generic-all
|
||||
java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java initial_runs generic-all
|
||||
java/awt/Mixing/AWT_Mixing/JListOverlapping.java initial_runs generic-all
|
||||
java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java initial_runs generic-all
|
||||
java/awt/Mixing/HWDisappear.java JBR-6818 linux-all
|
||||
java/awt/Mouse/MouseWheelAbsXY/MouseWheelAbsXY.java JBR-7076 linux-all
|
||||
java/awt/PopupMenu/PopupMenuLocation.java initial_runs generic-all
|
||||
java/awt/PopupMenu/PopupMenuStayOpen.java initial_runs generic-all
|
||||
|
||||
@@ -141,6 +141,7 @@ java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java JBR-5809 linux-all
|
||||
java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java JBR-5210 windows-all
|
||||
java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java 8016266 linux-all
|
||||
java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all
|
||||
java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java JBR-7311 linux-x86
|
||||
java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all
|
||||
java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java 6848407 generic-all
|
||||
java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 8169110 linux-all
|
||||
@@ -264,6 +265,7 @@ java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java 8169476 windows
|
||||
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
|
||||
|
||||
java/awt/event/KeyEvent/KeyTyped/AltShiftEnterShouldNotSendKeyTyped7157.java JBR-7327 windows-x64
|
||||
java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java JBR-4880 windows-all
|
||||
|
||||
java/awt/event/KeyEvent/KeyTyped/CtrlSpace.java JBR-3817 windows-all,macosx-all
|
||||
@@ -1081,7 +1083,7 @@ java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 8253184,JBR-1
|
||||
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
java/awt/Robot/CheckCommonColors/CheckCommonColors.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
|
||||
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java JBR-5802 windows-all
|
||||
java/awt/Robot/MultiScreenRobotPosition/MultiScreenRobotPosition.java JBR-830 windows-x64
|
||||
java/awt/Robot/MultiScreenRobotPosition/MultiScreenRobotPosition.java JBR-830 windows-all
|
||||
|
||||
native_sanity/simplenativelauncher/ProgramTest.java JBR-5287 windows-all
|
||||
|
||||
@@ -1174,11 +1176,9 @@ jdk/jfr/api/consumer/recordingstream/TestOnEvent.java 8255404 linux-x6
|
||||
# jdk_internal
|
||||
|
||||
jdk/internal/platform/docker/TestDockerBasic.java JBR-5220 linux-aarch64
|
||||
jdk/internal/platform/docker/TestDockerCpuMetrics.java JBR-5334 linux-aarch64
|
||||
jdk/internal/platform/docker/TestDockerMemoryMetrics.java JBR-5220 linux-aarch64
|
||||
jdk/internal/platform/docker/TestGetFreeSwapSpaceSize.java JBR-5220 linux-aarch64
|
||||
jdk/internal/platform/docker/TestPidsLimit.java JBR-5334,8311539 linux-aarch64,5.19.0-1026-aws
|
||||
jdk/internal/platform/docker/TestUseContainerSupport.java JBR-5334 linux-aarch64
|
||||
jdk/internal/platform/docker/TestPidsLimit.java 8311539 linux-all
|
||||
|
||||
############################################################################
|
||||
|
||||
|
||||
@@ -49,12 +49,14 @@ java/awt/Mixing/OverlappingButtons.java JBR-5707,JBR-6090 linux-all,windows-all
|
||||
java/awt/Mixing/Validating.java JBR-5908,JBR-6090 linux-all,windows-all
|
||||
java/awt/Modal/BlockedMouseInputTest2.java JBR-6090 windows-all
|
||||
java/awt/Modal/BlockedMouseInputTest3.java JBR-6134 windows-x64
|
||||
java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.java JBR-7309 linux-x64
|
||||
java/awt/PopupMenu/PopupMenuLocation.java 8238720,JBR-5071 windows-all,macosx-all,linux-all
|
||||
java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java JBR-6845 linux-all
|
||||
java/awt/Window/TopLevelLocation/TopLevelLocation.java JBR-5799 windows-all
|
||||
java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5513 linux-all
|
||||
javax/swing/JComponent/7154030/bug7154030.java JBR-6134 windows-x64
|
||||
javax/swing/JPopupMenu/6580930/bug6580930.java JBR-5071 linux-all
|
||||
javax/swing/JSlider/6848475/bug6848475.java JBR-7329 windows-x64
|
||||
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6090,JBR-6360 linux-all,windows-all,macosx-all
|
||||
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-5342 linux-all
|
||||
|
||||
|
||||
Reference in New Issue
Block a user