1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 21:08:08 +01:00

Fixes relate to modelock.

This commit is contained in:
id
1999-05-22 21:30:35 +00:00
parent c28f3b2c5b
commit b3112e2b3c
10 changed files with 216 additions and 192 deletions

View File

@@ -446,13 +446,16 @@ saveTimestamp(XEvent *event)
static void
handleExtensions(XEvent *event)
{
XkbEvent *xkbevent;
xkbevent = event;
#ifdef SHAPE
if (wShapeSupported && event->type == (wShapeEventBase+ShapeNotify)) {
handleShapeNotify(event);
}
#endif
#ifdef KEEP_XKB_LOCK_STATUS
if (wPreferences.modelock && event->type == (0x50|XkbIndicatorStateNotify)){
if (wPreferences.modelock &&
(event->type == 0x54)){
/* if someone know how to call this 0x50
* or how to clean code this please tell ]d */
handleXkbIndicatorStateNotify(event);
@@ -1157,23 +1160,20 @@ handleXkbIndicatorStateNotify(XEvent *event)
XkbStateRec staterec;
int i;
XkbGetState(dpy,XkbUseCoreKbd,&staterec);
for (i=0; i<wScreenCount; i++) {
scr = wScreenWithNumber(i);
wwin = scr->focused_window;
if (wwin->flags.focused) {
wwin->frame->languagemode=staterec.compat_state&32?1:0;
XkbGetState(dpy,XkbUseCoreKbd,&staterec);
if (wwin->frame->languagemode != staterec.group) {
wwin->frame->last_languagemode = wwin->frame->languagemode;
wwin->frame->languagemode = staterec.group;
}
#ifdef XKB_BUTTON_HINT
if (wwin->frame->titlebar) {
wFrameWindowPaint(wwin->frame);
}
#endif
#ifdef XKB_TITLE_HINT
if (wwin->frame->titlebar) {
XClearWindow(dpy, wwin->frame->titlebar->window);
wFrameWindowPaint(wwin->frame);
}
#endif /* XKB_TITLE_HINT */
}
}
}
@@ -1774,11 +1774,11 @@ handleKeyPress(XEvent *event)
if (wwin && wwin->flags.mapped
&& wwin->frame->workspace == wwin->screen_ptr->current_workspace
&& !wwin->flags.miniaturized && !wwin->flags.hidden) {
XkbGetState(dpy,XkbUseCoreKbd,&staterec);
XkbGetState(dpy,XkbUseCoreKbd,&staterec);
wwin->frame->languagemode = staterec.compat_state&32
? 0 : 1;
XkbLockGroup(dpy,XkbUseCoreKbd, wwin->frame->languagemode);
wwin->frame->languagemode = wwin->frame->last_languagemode;
wwin->frame->last_languagemode = staterec.group;
XkbLockGroup(dpy,XkbUseCoreKbd, wwin->frame->languagemode);
}
}