Source Code (Use browser search to find items of interest.)
Class Index
klyx'MyApp (./klyx/src/klyx.h:134)
class MyApp:public KApplication {
public:
MyApp( int &argc, char **argv, const QCString& rAppName );
virtual bool x11EventFilter( XEvent * );
};
klyx'MyApp::MyApp() (./klyx/src/klyx.C:267)
MyApp::MyApp(int &argc, char **argv , const QCString& rAppName):
KApplication(argc, argv, rAppName){
QWidget* tmp = new QWidget;
gs_communication_window = tmp->winId();
qt_display = tmp->x11Display();
// ensure that a fork()/exec() pair will not confuse X
fcntl(ConnectionNumber(qt_xdisplay()), F_SETFD, 1);
// find out what is the default character set (iso font norm)
QString chs = QFont::encodingName( QFont::charSetForLocale() );
if (chs.left(3) == "iso" || chs.left(4) == "koi8")
DEFCHSET_VAR = chs;
if (chs.left(8) == "iso8859-") {
char buf[32];
sprintf(buf, "latin%c", chs[8]);
DEFENCODING_VAR = buf;
}
// now try to find out what language we are using and set certain
// params accordingly
DEFLANG_VAR = KGlobal::locale()->language();
// find language name to language code
for (int i = 0; tex_babel[i].name[0]; ++i) {
if (DEFLANG_VAR == tex_babel[i].code) {
DEFLANGUAGE_VAR = tex_babel[i].name;
break;
}
}
printf("Defchset: %s, defencoding: %s, deflang: %s/%s\n",
DEFCHSET, DEFENCODING, DEFLANG, DEFLANGUAGE);
}
klyx'MyApp::x11EventFilter() (./klyx/src/klyx.C:303)
bool MyApp::x11EventFilter( XEvent * ev){
if (ev->type == KeyPress){
stored_key_event = *ev;
XKeyEvent *keyevent = &ev->xkey;
XComposeStatus compose_status={NULL,0};
KeySym keysym_return;
char s_r[10];
int num_bytes;
num_bytes = XLookupString(keyevent,
s_r,
10,
&keysym_return,
&compose_status);
// do some tricky stuff because LyX wants to handle dead-keys manually
// although Qt would do that already for us.
if (focus_canvas && focus_canvas->hasFocus() &&
focus_canvas->view &&
(false ||
#ifdef XK_dead_grave
keysym_return == XK_dead_grave ||
#endif
#ifdef XK_dead_acute
keysym_return == XK_dead_acute ||
#endif
#ifdef XK_dead_circumflex
keysym_return == XK_dead_circumflex ||
#endif
#ifdef XK_dead_tilde
keysym_return == XK_dead_tilde ||
#endif
#ifdef XK_dead_macron
keysym_return == XK_dead_macron ||
#endif
#ifdef XK_dead_breve
keysym_return == XK_dead_breve ||
#endif
#ifdef XK_dead_abovedot
keysym_return == XK_dead_abovedot ||
#endif
#ifdef XK_dead_diaeresis
keysym_return == XK_dead_diaeresis ||
#endif
#ifdef XK_dead_abovering
keysym_return == XK_dead_abovering ||
#endif
#ifdef XK_dead_doubleacute
keysym_return == XK_dead_doubleacute ||
#endif
#ifdef XK_dead_caron
keysym_return == XK_dead_caron ||
#endif
#ifdef XK_dead_cedilla
keysym_return == XK_dead_cedilla ||
#endif
#ifdef XK_dead_ogonek
keysym_return == XK_dead_ogonek ||
#endif
#ifdef XK_dead_iota
keysym_return == XK_dead_iota ||
#endif
#ifdef XK_dead_voiced_sound
keysym_return == XK_dead_voiced_sound ||
#endif
#ifdef XK_dead_semivoiced_sound
keysym_return == XK_dead_semivoiced_sound ||
#endif
#ifdef XK_dead_belowdot
keysym_return == XK_dead_belowdot ||
#endif
false)){
stored_key_event.xkey.serial = 0;
// see comment in K_Canvas::keyPressEvent
focus_canvas->view->kKeyPress(&stored_key_event);
return TRUE;
}
}
else if (ev->type == ClientMessage
&& ev->xany.window == gs_communication_window){
GhostscriptMsg(ev);
return TRUE;
}
return KApplication::x11EventFilter(ev);
}
// Local Variables:
// mode: C++
// c-file-style: "Stroustrup"
// End: