Hi Miklos,
After digging in some more, I was able to track down the hardware key events to 
gtk3gtkframe.cxx in vcl/unx/gtk3. Hopefully this information is useful for 
others looking for the same information. Within doKeyCallback function, I set 
mnCharCode in the SalKeyEvent object to the value I want and this value is 
reflected in the LayoutText function of CommonSalLayout.cxx.
Coming to the actual display, I faced two problems. I was able to display my 
glyph by hard coding the value of nGlyphIndex in LayoutText but that results in 
every single character in libreoffice printing my glyph (on every menu item, 
label, etc.). I need to figure out how to display my glyph based on the value 
passed into the LayoutText function based on mapping this value to the value of 
the nGlyphIndex. The mapping is the easy part but identifying the control flow 
is where things seem to get tricky. Print statements do not seem to help as 
they get printed multiple times for a single keystroke (18 times) and I am 
unsure which invocation in the loop is the relevant one and an attempt to 
insert an if condition based on the value I passed seemed to have no effect.

The other problem I had when I hard coded the value of nGlyphIndex is that the 
cursor does not move all the way to the end of the glyph but is in the center 
of the glyph so that the next keystroke results in an overlap of the right half 
of the glyph with the left half of the next glyph. This is the case only with 
the glyph in the font file I generated. Note that I have used my fontfile with 
other programs written using Gtk+ and they work fine.

Any ideas would be appreciated.
-a

    On Monday, February 17, 2020, 2:36:57 AM CST, Miklos Vajna 
<[email protected]> wrote:  
 
 Hi Arvind,

Try 'git grep key_press vcl/source/', and keep in mind that if you type
into a Writer document, Calc cell or Impress shape, those are all
"custom widgets" in terms of gtk3.

Regards,

Miklos
  
_______________________________________________
LibreOffice mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to