Compare commits

..

3 Commits

Author SHA1 Message Date
Vitaly Provodin
c564c2fb9f updated JTreg exclude list 2019-11-28 11:26:08 +07:00
Vitaly Provodin
e93aed8a4a updated JTreg exclude list 2019-11-26 09:35:44 +07:00
Vitaly Provodin
fb17d08330 updated JTreg exclude list 2019-11-25 10:41:27 +07:00
10 changed files with 75 additions and 179 deletions

View File

@@ -26,10 +26,6 @@ git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
# Configure Local Build Environment
[OpenJDK build docs](http://hg.openjdk.java.net/jdk/jdk11/raw-file/tip/doc/building.html)
Tip for all platforms: run ./configure and check output.
Usually, it has meaningful advice how to solve your problem.
## Linux (docker)
```
$ cd jb/project/docker
@@ -55,29 +51,7 @@ $ make images
```
## Windows
Install:
* [Cygwin x64](http://www.cygwin.com/)
Required packages: autoconf, binutils, cpio, diffutils, file, gawk, gcc-core, make, m4, unzip, zip.
**Install them while installing cygwin**.
* Visual Studio compiler toolset [Download](https://visualstudio.microsoft.com/downloads/)
Visual Studio 2015 has support by default.
**Install with desktop development kit, it includes Windows SDK and compilers**.
* [Java 11](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
If you have problems while configuring [read java tips on cygwin](http://horstmann.com/articles/cygwin-tips.html)
From command line
```
"c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
```
First command will set env vars, the second will run cygwin shell with proper environment.
In cygwin shell
```
cd JetBrainsRuntime
./configure --disable-warnings-as-errors
make images
```
#### TBD
## OSX

View File

@@ -42,7 +42,7 @@ allfonts.myanmar=Myanmar Text
allfonts.dingbats=Wingdings
allfonts.symbol=Symbol
allfonts.symbols=Segoe UI Symbol
allfonts.thai=Tahoma
allfonts.thai=DokChampa
allfonts.georgian=Sylfaen
serif.plain.alphabetic=Times New Roman
@@ -50,140 +50,140 @@ serif.plain.chinese-ms950=MingLiU
serif.plain.chinese-ms950-extb=MingLiU-ExtB
serif.plain.hebrew=David
serif.plain.japanese=MS Mincho
serif.plain.korean=Malgun Gothic
serif.plain.korean=Batang
serif.bold.alphabetic=Times New Roman Bold
serif.bold.chinese-ms950=PMingLiU
serif.bold.chinese-ms950-extb=PMingLiU-ExtB
serif.bold.hebrew=David Bold
serif.bold.japanese=MS Mincho
serif.bold.korean=Malgun Gothic
serif.bold.korean=Batang
serif.italic.alphabetic=Times New Roman Italic
serif.italic.chinese-ms950=PMingLiU
serif.italic.chinese-ms950-extb=PMingLiU-ExtB
serif.italic.hebrew=David
serif.italic.japanese=MS Mincho
serif.italic.korean=Malgun Gothic
serif.italic.korean=Batang
serif.bolditalic.alphabetic=Times New Roman Bold Italic
serif.bolditalic.chinese-ms950=PMingLiU
serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
serif.bolditalic.hebrew=David Bold
serif.bolditalic.japanese=MS Mincho
serif.bolditalic.korean=Malgun Gothic
serif.bolditalic.korean=Batang
sansserif.plain.alphabetic=Arial
sansserif.plain.chinese-ms950=MingLiU
sansserif.plain.chinese-ms950-extb=MingLiU-ExtB
sansserif.plain.hebrew=David
sansserif.plain.japanese=MS Gothic
sansserif.plain.korean=Malgun Gothic
sansserif.plain.korean=Gulim
sansserif.bold.alphabetic=Arial Bold
sansserif.bold.chinese-ms950=PMingLiU
sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bold.hebrew=David Bold
sansserif.bold.japanese=MS Gothic
sansserif.bold.korean=Malgun Gothic
sansserif.bold.korean=Gulim
sansserif.italic.alphabetic=Arial Italic
sansserif.italic.chinese-ms950=PMingLiU
sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.italic.hebrew=David
sansserif.italic.japanese=MS Gothic
sansserif.italic.korean=Malgun Gothic
sansserif.italic.korean=Gulim
sansserif.bolditalic.alphabetic=Arial Bold Italic
sansserif.bolditalic.chinese-ms950=PMingLiU
sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bolditalic.hebrew=David Bold
sansserif.bolditalic.japanese=MS Gothic
sansserif.bolditalic.korean=Malgun Gothic
sansserif.bolditalic.korean=Gulim
monospaced.plain.alphabetic=Courier New
monospaced.plain.chinese-ms950=MingLiU
monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
monospaced.plain.hebrew=Courier New
monospaced.plain.japanese=MS Gothic
monospaced.plain.korean=Malgun Gothic
monospaced.plain.korean=GulimChe
monospaced.bold.alphabetic=Courier New Bold
monospaced.bold.chinese-ms950=PMingLiU
monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bold.hebrew=Courier New Bold
monospaced.bold.japanese=MS Gothic
monospaced.bold.korean=Malgun Gothic
monospaced.bold.korean=GulimChe
monospaced.italic.alphabetic=Courier New Italic
monospaced.italic.chinese-ms950=PMingLiU
monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.italic.hebrew=Courier New
monospaced.italic.japanese=MS Gothic
monospaced.italic.korean=Malgun Gothic
monospaced.italic.korean=GulimChe
monospaced.bolditalic.alphabetic=Courier New Bold Italic
monospaced.bolditalic.chinese-ms950=PMingLiU
monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bolditalic.hebrew=Courier New Bold
monospaced.bolditalic.japanese=MS Gothic
monospaced.bolditalic.korean=Malgun Gothic
monospaced.bolditalic.korean=GulimChe
dialog.plain.alphabetic=Arial
dialog.plain.chinese-ms950=MingLiU
dialog.plain.chinese-ms950-extb=MingLiU-ExtB
dialog.plain.hebrew=David
dialog.plain.japanese=MS Gothic
dialog.plain.korean=Malgun Gothic
dialog.plain.korean=Gulim
dialog.bold.alphabetic=Arial Bold
dialog.bold.chinese-ms950=PMingLiU
dialog.bold.chinese-ms950-extb=PMingLiU-ExtB
dialog.bold.hebrew=David Bold
dialog.bold.japanese=MS Gothic
dialog.bold.korean=Malgun Gothic
dialog.bold.korean=Gulim
dialog.italic.alphabetic=Arial Italic
dialog.italic.chinese-ms950=PMingLiU
dialog.italic.chinese-ms950-extb=PMingLiU-ExtB
dialog.italic.hebrew=David
dialog.italic.japanese=MS Gothic
dialog.italic.korean=Malgun Gothic
dialog.italic.korean=Gulim
dialog.bolditalic.alphabetic=Arial Bold Italic
dialog.bolditalic.chinese-ms950=PMingLiU
dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialog.bolditalic.hebrew=David Bold
dialog.bolditalic.japanese=MS Gothic
dialog.bolditalic.korean=Malgun Gothic
dialog.bolditalic.korean=Gulim
dialoginput.plain.alphabetic=Courier New
dialoginput.plain.chinese-ms950=MingLiU
dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB
dialoginput.plain.hebrew=David
dialoginput.plain.japanese=MS Gothic
dialoginput.plain.korean=Malgun Gothic
dialoginput.plain.korean=Gulim
dialoginput.bold.alphabetic=Courier New Bold
dialoginput.bold.chinese-ms950=PMingLiU
dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bold.hebrew=David Bold
dialoginput.bold.japanese=MS Gothic
dialoginput.bold.korean=Malgun Gothic
dialoginput.bold.korean=Gulim
dialoginput.italic.alphabetic=Courier New Italic
dialoginput.italic.chinese-ms950=PMingLiU
dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.italic.hebrew=David
dialoginput.italic.japanese=MS Gothic
dialoginput.italic.korean=Malgun Gothic
dialoginput.italic.korean=Gulim
dialoginput.bolditalic.alphabetic=Courier New Bold Italic
dialoginput.bolditalic.chinese-ms950=PMingLiU
dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bolditalic.hebrew=David Bold
dialoginput.bolditalic.japanese=MS Gothic
dialoginput.bolditalic.korean=Malgun Gothic
dialoginput.bolditalic.korean=Gulim
# Search Sequences
@@ -241,7 +241,7 @@ sequence.allfonts.x-windows-874=alphabetic,thai,dingbats,symbol
sequence.fallback=symbols,\
chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
japanese,korean,chinese-ms950-extb,chinese-ms936-extb,\
georgian,kannada,thai,myanmar
georgian,kannada,myanmar
# Exclusion Ranges
@@ -291,8 +291,11 @@ filename.MS_PMincho=MSMINCHO.TTC
filename.MS_Gothic=MSGOTHIC.TTC
filename.MS_PGothic=MSGOTHIC.TTC
filename.Malgun_Gothic=malgun.ttf
filename.Tahoma=tahoma.ttf
filename.Gulim=gulim.TTC
filename.Batang=batang.TTC
filename.GulimChe=gulim.TTC
filename.DokChampa=dokchamp.ttf
filename.Mangal=MANGAL.TTF
filename.Tunga=TUNGA.TTF
filename.Myanmar_Text=mmrtext.ttf

View File

@@ -40,8 +40,6 @@ extern int gNumberOfButtons;
// InputEvent mask array
extern jint* gButtonDownMasks;
extern int lcdSubPixelPosSupported;
@interface AWTToolkit : NSObject { }
+ (long) getEventCount;
+ (void) eventCountPlusPlus;

View File

@@ -52,7 +52,6 @@
int gNumberOfButtons;
jint* gButtonDownMasks;
int lcdSubPixelPosSupported;
// Indicates that the app has been started with -XstartOnFirstThread
// (directly or via WebStart settings), and AWT should not run its

View File

@@ -337,7 +337,7 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
CFPreferencesGetAppBooleanValue(
CFSTR("CGFontRenderingFontSmoothingDisabled"),
kCFPreferencesCurrentApplication, &status);
lcdSubPixelPosSupported = YES;
if (status) {
if (fontSmoothingDisabled) {
J2dRlsTraceLn(J2D_TRACE_INFO,
@@ -355,7 +355,7 @@ Java_sun_java2d_opengl_CGLGraphicsConfig_getCGLConfigInfo
if (!status) {
smoothFonts = YES;
}
lcdSubPixelPosSupported = !smoothFonts;
if (!smoothFonts) {
J2dRlsTraceLn(J2D_TRACE_INFO,
"LCD_SHADER: disabled on macOS 10.14+ by default");

View File

@@ -1027,10 +1027,6 @@ OGLTR_DrawColorGlyphNoCache(OGLContext *oglc, GlyphInfo *ginfo, jint x, jint y)
return JNI_TRUE;
}
// Control subpixel positioning for macOS 13+ grayscale glyphs
#ifdef MACOSX
extern int lcdSubPixelPosSupported;
#endif
// see DrawGlyphList.c for more on this macro...
#define FLOOR_ASSIGN(l, r) \
@@ -1083,8 +1079,6 @@ OGLTR_DrawGlyphList(JNIEnv *env, OGLContext *oglc, OGLSDOps *dstOps,
{
dstTextureID = dstOps->textureID;
}
subPixPos = lcdSubPixelPosSupported ? subPixPos : 0;
#endif
for (glyphCounter = 0; glyphCounter < totalGlyphs; glyphCounter++) {

View File

@@ -224,11 +224,10 @@ BOOL windowMoveLockHeld = FALSE;
AwtComponent::AwtComponent()
{
m_mouseButtonClickAllowed = 0;
m_isTouchScroll = FALSE;
m_touchDownPoint = {0, 0};
m_lastTouchPoint = {0, 0};
m_touchDownOccurred = FALSE;
m_touchUpOccurred = FALSE;
m_touchDownPoint.x = m_touchDownPoint.y = 0;
m_touchUpPoint.x = m_touchUpPoint.y = 0;
m_callbacksEnabled = FALSE;
m_hwnd = NULL;
@@ -1395,10 +1394,6 @@ void SpyWinMessage(HWND hwnd, UINT message, LPCTSTR szComment) {
#endif /* SPY_MESSAGES */
static BOOL IsMouseEventFromTouch()
{
return (::GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH;
}
/*
* Dispatch messages for this window class--general component
*/
@@ -1715,9 +1710,6 @@ LRESULT AwtComponent::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOUSEHWHEEL:
case WM_AWT_MOUSEENTER:
case WM_AWT_MOUSEEXIT:
if (IsMouseEventFromTouch()) {
break;
}
curPos = ::GetMessagePos();
POINT myPos;
myPos.x = GET_X_LPARAM(curPos);
@@ -2393,90 +2385,27 @@ void AwtComponent::WmTouch(WPARAM wParam, LPARAM lParam) {
UINT inputsCount = LOWORD(wParam);
TOUCHINPUT* pInputs = new TOUCHINPUT[inputsCount];
if (tk.TIGetTouchInputInfo((HTOUCHINPUT)lParam, inputsCount, pInputs,
sizeof(TOUCHINPUT)) != 0) {
for (UINT i = 0; i < inputsCount; i++) {
WmTouchHandler(pInputs[i]);
}
}
delete[] pInputs;
}
BOOL AwtComponent::IsInsideTouchClickBoundaries(POINT p)
{
return abs(p.x - m_touchDownPoint.x) <= TOUCH_MOUSE_COORDS_DELTA &&
abs(p.y - m_touchDownPoint.y) <= TOUCH_MOUSE_COORDS_DELTA;
}
POINT AwtComponent::TouchCoordsToLocal(LONG x, LONG y)
{
POINT p{TOUCH_COORD_TO_PIXEL(x), TOUCH_COORD_TO_PIXEL(y)};
::ScreenToClient(GetHWnd(), &p);
return p;
}
void AwtComponent::SendMouseWheelEventFromTouch(POINT p, jint modifiers, jint scrollType, jint pixels)
{
SendMouseWheelEvent(java_awt_event_MouseEvent_MOUSE_WHEEL, ::JVM_CurrentTimeMillis(NULL, 0),
p.x, p.y, modifiers, 0, 0, scrollType,
/*scrollAmount*/ 1, pixels,
static_cast<double>(pixels), /*msg*/ nullptr);
}
void AwtComponent::SendMouseEventFromTouch(jint id, POINT p, jint modifiers)
{
SendMouseEvent(id, ::JVM_CurrentTimeMillis(NULL, 0), p.x, p.y,
modifiers, /*clickCount*/ 1, JNI_FALSE,
java_awt_event_MouseEvent_BUTTON1,
/*msg*/ nullptr, /*causedByTouchEvent*/ TRUE);
}
void AwtComponent::WmTouchHandler(const TOUCHINPUT& touchInput)
{
// skip multitouch, remove after gesture support
if (!(touchInput.dwFlags & TOUCHEVENTF_PRIMARY)) {
return;
}
jint modifiers = GetJavaModifiers();
// turn off horizontal
modifiers &= ~java_awt_event_InputEvent_SHIFT_DOWN_MASK;
const POINT p = TouchCoordsToLocal(touchInput.x, touchInput.y);
if (touchInput.dwFlags & TOUCHEVENTF_DOWN) {
m_touchDownPoint = p;
m_lastTouchPoint = p;
m_isTouchScroll = FALSE;
} else if (touchInput.dwFlags & TOUCHEVENTF_MOVE) {
if (IsInsideTouchClickBoundaries(p)) {
return;
}
if (!m_isTouchScroll) {
SendMouseWheelEventFromTouch(p, modifiers, TOUCH_BEGIN, 1);
m_isTouchScroll = TRUE;
}
const int deltaY = ScaleDownY(static_cast<int>(m_lastTouchPoint.y - p.y));
if (abs(deltaY) != 0) {
SendMouseWheelEventFromTouch(p, modifiers, TOUCH_UPDATE, deltaY);
}
const int deltaX = ScaleDownX(static_cast<int>(m_lastTouchPoint.x - p.x));
if (abs(deltaX) != 0) {
modifiers |= java_awt_event_InputEvent_SHIFT_DOWN_MASK;
SendMouseWheelEventFromTouch(p, modifiers, TOUCH_UPDATE, deltaX);
}
m_lastTouchPoint = p;
} else if (touchInput.dwFlags & TOUCHEVENTF_UP) {
if (m_isTouchScroll) {
SendMouseWheelEventFromTouch(p, modifiers, TOUCH_END, 1);
} else {
SendMouseEventFromTouch(java_awt_event_MouseEvent_MOUSE_PRESSED, p, modifiers);
SendMouseEventFromTouch(java_awt_event_MouseEvent_MOUSE_RELEASED, p, modifiers);
SendMouseEventFromTouch(java_awt_event_MouseEvent_MOUSE_CLICKED, p, modifiers);
if (pInputs != NULL) {
if (tk.TIGetTouchInputInfo((HTOUCHINPUT)lParam, inputsCount, pInputs,
sizeof(TOUCHINPUT)) != 0) {
for (UINT i = 0; i < inputsCount; i++) {
TOUCHINPUT ti = pInputs[i];
if (ti.dwFlags & TOUCHEVENTF_PRIMARY) {
if (ti.dwFlags & TOUCHEVENTF_DOWN) {
m_touchDownPoint.x = ti.x / 100;
m_touchDownPoint.y = ti.y / 100;
::ScreenToClient(GetHWnd(), &m_touchDownPoint);
m_touchDownOccurred = TRUE;
} else if (ti.dwFlags & TOUCHEVENTF_UP) {
m_touchUpPoint.x = ti.x / 100;
m_touchUpPoint.y = ti.y / 100;
::ScreenToClient(GetHWnd(), &m_touchUpPoint);
m_touchUpOccurred = TRUE;
}
}
}
}
delete[] pInputs;
}
}
@@ -2522,6 +2451,14 @@ MsgRouting AwtComponent::WmMouseDown(UINT flags, int x, int y, int button)
m_mouseButtonClickAllowed |= GetButtonMK(button);
lastTime = now;
BOOL causedByTouchEvent = FALSE;
if (m_touchDownOccurred &&
(abs(m_touchDownPoint.x - x) <= TOUCH_MOUSE_COORDS_DELTA) &&
(abs(m_touchDownPoint.y - y) <= TOUCH_MOUSE_COORDS_DELTA)) {
causedByTouchEvent = TRUE;
m_touchDownOccurred = FALSE;
}
MSG msg;
InitMessage(&msg, lastMessage, flags, MAKELPARAM(x, y), x, y);
@@ -2540,7 +2477,7 @@ MsgRouting AwtComponent::WmMouseDown(UINT flags, int x, int y, int button)
SendMouseEvent(java_awt_event_MouseEvent_MOUSE_PRESSED, now, x, y,
GetJavaModifiers(), clickCount, JNI_FALSE,
GetButton(button), &msg, /*causedByTouchEvent*/ FALSE);
GetButton(button), &msg, causedByTouchEvent);
/*
* NOTE: this call is intentionally placed after all other code,
* since AwtComponent::WmMouseDown() assumes that the cached id of the
@@ -2562,13 +2499,21 @@ MsgRouting AwtComponent::WmMouseDown(UINT flags, int x, int y, int button)
MsgRouting AwtComponent::WmMouseUp(UINT flags, int x, int y, int button)
{
BOOL causedByTouchEvent = FALSE;
if (m_touchUpOccurred &&
(abs(m_touchUpPoint.x - x) <= TOUCH_MOUSE_COORDS_DELTA) &&
(abs(m_touchUpPoint.y - y) <= TOUCH_MOUSE_COORDS_DELTA)) {
causedByTouchEvent = TRUE;
m_touchUpOccurred = FALSE;
}
MSG msg;
InitMessage(&msg, lastMessage, flags, MAKELPARAM(x, y), x, y);
SendMouseEvent(java_awt_event_MouseEvent_MOUSE_RELEASED, ::JVM_CurrentTimeMillis(NULL, 0),
x, y, GetJavaModifiers(), clickCount,
(GetButton(button) == java_awt_event_MouseEvent_BUTTON3 ?
TRUE : FALSE), GetButton(button), &msg, /*causedByTouchEvent*/ FALSE);
TRUE : FALSE), GetButton(button), &msg, causedByTouchEvent);
/*
* If no movement, then report a click following the button release.
* When WM_MOUSEUP comes to a window without previous WM_MOUSEDOWN,

View File

@@ -71,9 +71,6 @@ const int X_BUTTONS = MK_XBUTTON1|MK_XBUTTON2;
// corresponding WM_LBUTTONDOWN/WM_LBUTTONUP event letting to associate these
// events, when their coordinates are slightly different.
const int TOUCH_MOUSE_COORDS_DELTA = 10;
const int TOUCH_BEGIN = 2;
const int TOUCH_UPDATE = 3;
const int TOUCH_END = 4;
// Whether to check for embedded frame and adjust location
#define CHECK_EMBEDDED 0
@@ -535,11 +532,6 @@ public:
virtual MsgRouting WmWindowPosChanging(LPARAM windowPos);
virtual MsgRouting WmWindowPosChanged(LPARAM windowPos);
virtual void WmTouch(WPARAM wParam, LPARAM lParam);
void WmTouchHandler(const TOUCHINPUT& touchInput);
BOOL IsInsideTouchClickBoundaries(POINT p);
POINT TouchCoordsToLocal(LONG x, LONG y);
void SendMouseWheelEventFromTouch(POINT p, jint modifiers, jint scrollType, jint pixels);
void SendMouseEventFromTouch(jint id, POINT p, jint modifiers);
// NB: 64-bit: vkey is wParam of the message, but other API's take
// vkey parameters of type UINT, so we do the cast before dispatching.
@@ -789,9 +781,10 @@ private:
*/
UINT m_mouseButtonClickAllowed;
BOOL m_isTouchScroll;
BOOL m_touchDownOccurred;
BOOL m_touchUpOccurred;
POINT m_touchDownPoint;
POINT m_lastTouchPoint;
POINT m_touchUpPoint;
BOOL m_bSubclassed;
BOOL m_bPauseDestroy;

View File

@@ -198,13 +198,6 @@ class CriticalSection {
#define TOUCHEVENTF_NOCOALESCE 0x0020
#define TOUCHEVENTF_PEN 0x0040
#define TOUCHEVENTF_PALM 0x0080
#define MOUSEEVENTF_FROMTOUCH 0xFF515700
/*
* Conversion of touch input coordinates to pixels
*/
#define TOUCH_COORD_TO_PIXEL(l) ((l) / 100)
#endif
/************************************************************************

View File

@@ -1179,9 +1179,6 @@ AwtWindow* AwtWindow::Create(jobject self, jobject parent)
if (env->ExceptionCheck()) goto done;
DWORD style = WS_CLIPCHILDREN | WS_POPUP;
DWORD exStyle = WS_EX_NOACTIVATE;
if (JNU_CallMethodByName(env, NULL, target, "isIgnoreMouseEvents", "()Z").z) {
exStyle |= WS_EX_LAYERED | WS_EX_TRANSPARENT;
}
if (GetRTL()) {
exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
if (GetRTLReadingOrder())