Loading src/imlib.c +3 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ magic_t magic = NULL; Display *disp = NULL; Visual *vis = NULL; Screen *scr = NULL; XIC input_context; XIC input_context = NULL; Colormap cm; int depth; Atom wmDeleteWindow; Loading Loading @@ -148,7 +148,9 @@ void init_x_and_imlib(void) xid_context = XUniqueContext(); XIM im = XOpenIM(disp, NULL, NULL, NULL); if (im != NULL) { input_context = XCreateIC(im, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, NULL); } #ifdef HAVE_LIBXINERAMA init_xinerama(); Loading src/keyevents.c +7 −2 Original line number Diff line number Diff line Loading @@ -369,6 +369,7 @@ void feh_event_handle_keypress(XEvent * ev) { int state; char kbuf[20]; unsigned long int kbuf_used = 0; KeySym keysym; XKeyEvent *kev; winwidget winwid = NULL; Loading @@ -383,13 +384,17 @@ void feh_event_handle_keypress(XEvent * ev) } kev = (XKeyEvent *) ev; unsigned long int kbuf_used = Xutf8LookupString(input_context, kev, (char *) kbuf, sizeof(kbuf), &keysym, NULL); if (input_context != NULL) { kbuf_used = Xutf8LookupString(input_context, kev, (char *) kbuf, sizeof(kbuf), &keysym, NULL); } else { kbuf_used = XLookupString(&ev->xkey, (char *) kbuf, sizeof(kbuf), &keysym, NULL); } if (kbuf_used < sizeof(kbuf)) { kbuf[kbuf_used] = 0; } else { kbuf[19] = 0; } D(("Xutf8LookupString set kbuf = %s, keysym = %08x\n", kbuf, keysym)); D(("X(utf8)LookupString set kbuf = %s, keysym = %08x\n", kbuf, keysym)); state = kev->state & (ControlMask | ShiftMask | Mod1Mask | Mod4Mask); if (ignore_space(keysym)) Loading src/winwidget.c +2 −0 Original line number Diff line number Diff line Loading @@ -860,9 +860,11 @@ void winwidget_show(winwidget winwid) if (opt.full_screen) XMoveWindow(disp, winwid->win, 0, 0); if (input_context != NULL) { XSetICValues(input_context, XNClientWindow, winwid->win, NULL); //XSelectInput(disp, winwid->win, ButtonPressMask|StructureNotifyMask|KeyPressMask|KeyReleaseMask); XSetICFocus(input_context); } /* wait for the window to map */ D(("Waiting for window to map\n")); Loading Loading
src/imlib.c +3 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ magic_t magic = NULL; Display *disp = NULL; Visual *vis = NULL; Screen *scr = NULL; XIC input_context; XIC input_context = NULL; Colormap cm; int depth; Atom wmDeleteWindow; Loading Loading @@ -148,7 +148,9 @@ void init_x_and_imlib(void) xid_context = XUniqueContext(); XIM im = XOpenIM(disp, NULL, NULL, NULL); if (im != NULL) { input_context = XCreateIC(im, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, NULL); } #ifdef HAVE_LIBXINERAMA init_xinerama(); Loading
src/keyevents.c +7 −2 Original line number Diff line number Diff line Loading @@ -369,6 +369,7 @@ void feh_event_handle_keypress(XEvent * ev) { int state; char kbuf[20]; unsigned long int kbuf_used = 0; KeySym keysym; XKeyEvent *kev; winwidget winwid = NULL; Loading @@ -383,13 +384,17 @@ void feh_event_handle_keypress(XEvent * ev) } kev = (XKeyEvent *) ev; unsigned long int kbuf_used = Xutf8LookupString(input_context, kev, (char *) kbuf, sizeof(kbuf), &keysym, NULL); if (input_context != NULL) { kbuf_used = Xutf8LookupString(input_context, kev, (char *) kbuf, sizeof(kbuf), &keysym, NULL); } else { kbuf_used = XLookupString(&ev->xkey, (char *) kbuf, sizeof(kbuf), &keysym, NULL); } if (kbuf_used < sizeof(kbuf)) { kbuf[kbuf_used] = 0; } else { kbuf[19] = 0; } D(("Xutf8LookupString set kbuf = %s, keysym = %08x\n", kbuf, keysym)); D(("X(utf8)LookupString set kbuf = %s, keysym = %08x\n", kbuf, keysym)); state = kev->state & (ControlMask | ShiftMask | Mod1Mask | Mod4Mask); if (ignore_space(keysym)) Loading
src/winwidget.c +2 −0 Original line number Diff line number Diff line Loading @@ -860,9 +860,11 @@ void winwidget_show(winwidget winwid) if (opt.full_screen) XMoveWindow(disp, winwid->win, 0, 0); if (input_context != NULL) { XSetICValues(input_context, XNClientWindow, winwid->win, NULL); //XSelectInput(disp, winwid->win, ButtonPressMask|StructureNotifyMask|KeyPressMask|KeyReleaseMask); XSetICFocus(input_context); } /* wait for the window to map */ D(("Waiting for window to map\n")); Loading