<i18n dev> <AWT Dev> Proposal:X11 default visual support for IM status window on VNC

Ichiroh Takiguchi takiguc at linux.vnet.ibm.com
Thu Jun 21 12:58:42 UTC 2018


Hello Phil.

I'm sorry, I forgot to put my comment against your question.

> Is this changing the default visual  for all WIndows, not just the IM 
> status window?
> I think we need to understand the implications before this can be 
> accepted.
I put following debug code:
=======
diff -r e1b3def12624 
src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
--- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c    
Wed Jun 13 06:35:04 2018 +0200
+++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c    
Thu Jun 21 21:23:11 2018 +0900
@@ -667,6 +667,7 @@
                              InputOutput,
                              adata->awt_visInfo.visual,
                              attribmask, &attrib);
+    fprintf(stderr, "status window id = 0x%X\n", status);
      XSelectInput(dpy, status,
                   ExposureMask | StructureNotifyMask | EnterWindowMask |
                   LeaveWindowMask | VisibilityChangeMask);
@@ -680,6 +681,21 @@
      statusWindow->fontset = XCreateFontSet(dpy,
                                             
"-*-*-medium-r-normal-*-*-120-*-*-*-*",
                                             &mclr, &mccr, &dsr);
+    {
+        int cntFonts;
+        for(cntFonts = 0; cntFonts < mccr; cntFonts++) {
+            fprintf(stderr, "[M][%d] %s\n", cntFonts, mclr[cntFonts]);
+        }
+    }
+    {
+        XFontStruct **font_struct_list;
+        char **font_name_list;
+        int cntFonts;
+        int numFonts = XFontsOfFontSet(statusWindow->fontset, 
&font_struct_list, &font_name_list);
+        for(cntFonts = 0; cntFonts < numFonts; cntFonts++) {
+            fprintf(stderr, "[L][%d] %s\n", cntFonts, 
font_name_list[cntFonts]);
+        }
+    }
      /* In case we didn't find the font set, release the list of missing 
characters */
      if (mccr > 0) {
          XFreeStringList(mclr);
=======

I tested it on RHEL7.
I thought since window id was assigned, but it was gone on current code.
=======
$ java -jar Notepad.jar
status window id = 0x4000055
...
$ xwininfo -id 0x4000055
X Error: 9: Bad Drawable: 0x4000055
   Request Major code: 14
   Request serial number: 3
xwininfo: error: No such window with id 0x4000055.
=======

=======
$ java -jar Notepad.jar
status window id = 0x40000CA
...
$ xwininfo -id 0x40000CA

xwininfo: Window id: 0x40000ca (has no name)

   Absolute upper-left X:  0
   Absolute upper-left Y:  600
   Relative upper-left X:  0
   Relative upper-left Y:  600
   Width: 80
   Height: 22
   Depth: 24
   Visual: 0x21
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x20 (installed)
   Bit Gravity State: ForgetGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsUnMapped
   Override Redirect State: yes
   Corners:  +0+600  -944+600  -944-146  +0-146
   -geometry 80x22+0+600
=======

According to main window: (Left side: without fix, right side: with fix)
=======
xwininfo: Window id: 0x4000009 " (failure   |   xwininfo: Window id: 
0x460007e " (failure

   Absolute upper-left X:  4                       Absolute upper-left X: 
  4
   Absolute upper-left Y:  25                      Absolute upper-left Y: 
  25
   Relative upper-left X:  0                       Relative upper-left X: 
  0
   Relative upper-left Y:  0                       Relative upper-left Y: 
  0
   Width: 492                                      Width: 492
   Height: 571                                     Height: 571
   Depth: 24                                       Depth: 24
   Visual: 0x169                             |     Visual: 0x21
   Visual Class: TrueColor                         Visual Class: 
TrueColor
   Border width: 0                                 Border width: 0
   Class: InputOutput                              Class: InputOutput
   Colormap: 0x4000008 (not installed)       |     Colormap: 0x20 
(installed)
   Bit Gravity State: NorthWestGravity             Bit Gravity State: 
NorthWestGravity
   Window Gravity State: NorthWestGravity          Window Gravity State: 
NorthWestGravity
   Backing Store State: NotUseful                  Backing Store State: 
NotUseful
   Save Under State: no                            Save Under State: no
   Map State: IsViewable                           Map State: IsViewable
   Override Redirect State: no                     Override Redirect 
State: no
   Corners:  +4+25  -528+25  -528-172  +4-1        Corners:  +4+25  
-528+25  -528-172  +4-1
   -geometry 492x571+0+0                           -geometry 492x571+0+0
=======

So main window's visual also changed by this fix.

> Similarly for the fontset change .. this might change what others get.
> The fontset spec. there seems very loose to me ..

Without fix
=======
$ java -jar Notepad.jar
status window id = 0x4000055
[M][0] JISX0208.1983-0
[M][1] GB2312.1980-0
[L][0] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
[L][1] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
[L][2] 
-daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0
[L][3] -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
[L][4] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1
=======

With fix
=======
$ java -jar Notepad.jar
status window id = 0x40000CA
[M][0] GB2312.1980-0
[L][0] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
[L][1] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
[L][2] -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0
[L][3] 
-daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0
[L][4] -sony-fixed-medium-r-normal--16-120-100-100-c-80-jisx0201.1976-0
[L][5] -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1
=======

[M] means "Missing" font, [L] means "Loaded".

On 2018-06-20 23:14, Philip Race wrote:
> My question has not been answered. I don't think this is ready to go 
> in.
> 
> -phil.
> 
> On 6/20/18, 4:23 AM, Ichiroh Takiguchi wrote:
>> Hello.
>> 
>> New fixed code is in:
>> http://cr.openjdk.java.net/~aleonard/defvis/webrev.02/
>> 
>> Could you check fixed files again ?
>> 
>> I only updated following part between webrev.01 and webrev.02
>> ======
>> diff -r 70a582d110a1 -r 6f04164a9d62 
>> src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
>> --- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c   
>>  Wed Jun 06 21:03:25 2018 +0900
>> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c   
>>  Wed Jun 20 16:54:24 2018 +0900
>> @@ -677,7 +677,7 @@
>>          return NULL;
>>      }
>>      statusWindow->w = status;
>> -    //12-point font
>> +    //12, 13-point fonts
>>      statusWindow->fontset = XCreateFontSet(dpy,
>>                                             
>> "-*-*-medium-r-normal-*-*-120-*-*-*-*," \
>>                                             
>> "-*-*-medium-r-normal-*-*-130-*-*-*-*",
>> ======
>> 
>> 
>> Please create bugid and handle it.
>> 
>> Thanks,
>> Ichiroh Takiguchi
>> IBM Japan, Ltd.
>> 
>> On 2018-06-20 04:59, Naoto Sato wrote:
>>> Please change the comment in line 680, which should also mention 13 
>>> point font.
>>> 
>>> Naoto
>>> 
>>> On 6/19/18 12:54 PM, Naoto Sato wrote:
>>>> Looks OK wrt awt_InputMethod.c change.
>>>> 
>>>> Naoto
>>>> 
>>>> On 6/19/18 11:32 AM, Phil Race wrote:
>>>>> Where's the bug ID ?
>>>>> 
>>>>> The review should have a bug ID in the subject line so we can all 
>>>>> find it later !
>>>>> 
>>>>> Is this changing the default visual  for all WIndows, not just the 
>>>>> IM status window?
>>>>> I think we need to understand the implications before this can be 
>>>>> accepted.
>>>>> 
>>>>> Similarly for the fontset change .. this might change what others 
>>>>> get.
>>>>> The fontset spec. there seems very loose to me ..
>>>>> 
>>>>> I think I18N-DEV should be asked about this too.
>>>>> 
>>>>> -phil.
>>>>> 
>>>>> On 06/19/2018 11:07 AM, Sergey Bylokhov wrote:
>>>>>> Looks fine, if there are no other comments I'll push the fix using 
>>>>>> the new bugid.
>>>>>> 
>>>>>> On 06/06/2018 17:54, Ichiroh Takiguchi wrote:
>>>>>>> Hello Sergey.
>>>>>>> Thank you for your review.
>>>>>>> 
>>>>>>> Could you review following patch ?
>>>>>>> http://cr.openjdk.java.net/~aleonard/defvis/webrev.01/
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Ichiroh Takiguchi
>>>>>>> IBM Japan, Ltd.
>>>>>>> 
>>>>>>> On 2018-06-06 07:15, Sergey Bylokhov wrote:
>>>>>>>> Hi, Ichiroh.
>>>>>>>> The approach looks fine, but maybe it is possible to decrees 
>>>>>>>> code
>>>>>>>> duplication in findWithTemplate(). After the fix it will have 
>>>>>>>> two
>>>>>>>> similar loops.
>>>>>>>> 
>>>>>>>> On 24/05/2018 22:24, Ichiroh Takiguchi wrote:
>>>>>>>>> Hello,
>>>>>>>>> IBM would like to contribute X11 default visual support for IM 
>>>>>>>>> status window patch to OpenJDK project.
>>>>>>>>> 
>>>>>>>>> Issue:
>>>>>>>>> Java's Native IM status window is not displayed even if it's 
>>>>>>>>> there.
>>>>>>>>> Because of this issue, user cannot get proper visual feedback 
>>>>>>>>> during key input operation.
>>>>>>>>> We found this issue on Tiger VNC.
>>>>>>>>> 
>>>>>>>>> Reason:
>>>>>>>>> Java may pick up unexpected visual for Java's Native IM status 
>>>>>>>>> window when  Xserver supports multiple visual.
>>>>>>>>> 
>>>>>>>>> Workaround:
>>>>>>>>> X11 default visual can be changed by FORCEDEFVIS environment 
>>>>>>>>> variable, but it's not easy to find out default visual id.
>>>>>>>>> 
>>>>>>>>> I'd like contribute following 2 files:
>>>>>>>>> M 
>>>>>>>>> src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c
>>>>>>>>> (Change X11 visual setting)
>>>>>>>>> M 
>>>>>>>>> src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
>>>>>>>>> (Support 13 point X11 misc fonts (like k14 font for Japanese), 
>>>>>>>>> since the fonts may defined for unscaled fonts.)
>>>>>>>>> 
>>>>>>>>> webrev files are in
>>>>>>>>> http://cr.openjdk.java.net/~aleonard/defvis/
>>>>>>>>> 
>>>>>>>>> I appreciate any feedback please, and how I would go about 
>>>>>>>>> obtaining a sponsor and contributor?
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Ichiroh Takiguchi
>>>>>>>>> IBM Japan, Ltd.
>>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>> 



More information about the i18n-dev mailing list