diff -ur WindowMaker-0.92.0_orig/src/window.c WindowMaker-0.92.0/src/window.c --- WindowMaker-0.92.0_orig/src/window.c 2005-07-01 02:56:11.000000000 +0200 +++ WindowMaker-0.92.0/src/window.c 2010-07-17 12:07:44.000000000 +0200 @@ -1301,7 +1301,9 @@ if (WFLAGP(wwin, no_miniaturize_button)) foo |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT - if (WFLAGP(wwin, no_language_button) || WFLAGP(wwin, no_focusable)) + if (wPreferences.modelock + && (WFLAGP(wwin, no_language_button) + || WFLAGP(wwin, no_focusable))) foo |= WFF_LANGUAGE_BUTTON; #endif if (foo!=0) @@ -1613,7 +1615,8 @@ foo = WFF_RIGHT_BUTTON|WFF_BORDER; foo |= WFF_TITLEBAR; #ifdef XKB_BUTTON_HINT - foo |= WFF_LANGUAGE_BUTTON; + if (wPreferences.modelock) + foo |= WFF_LANGUAGE_BUTTON; #endif wwin->frame = wFrameWindowCreate(scr, WMFloatingLevel, @@ -2435,7 +2438,8 @@ } #ifdef XKB_BUTTON_HINT - if (!WFLAGP(wwin, no_language_button)) { + if (wPreferences.modelock + && !WFLAGP(wwin, no_language_button)) { if (fwin->languagebutton_image && !fwin->languagebutton_image->shared) { wPixmapDestroy(fwin->languagebutton_image); @@ -2518,7 +2522,8 @@ flags = WFF_LEFT_BUTTON|WFF_RIGHT_BUTTON; #ifdef XKB_BUTTON_HINT - flags |= WFF_LANGUAGE_BUTTON; + if (wPreferences.modelock) + flags |= WFF_LANGUAGE_BUTTON; #endif if (HAS_TITLEBAR(wwin)) @@ -2546,10 +2551,10 @@ flags |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT - if (!WFLAGP(wwin, no_language_button) - && wwin->frame->flags.hide_language_button) { + if (wPreferences.modelock + && !WFLAGP(wwin, no_language_button) + && wwin->frame->flags.hide_language_button) flags |= WFF_LANGUAGE_BUTTON; - } #endif if (!WFLAGP(wwin, no_close_button) @@ -2567,7 +2572,8 @@ flags |= WFF_LEFT_BUTTON; #ifdef XKB_BUTTON_HINT - if (WFLAGP(wwin, no_language_button) + if (wPreferences.modelock + && WFLAGP(wwin, no_language_button) && !wwin->frame->flags.hide_language_button) flags |= WFF_LANGUAGE_BUTTON; #endif