From 7ca96b9ed63c319a2e9a8de0e36dae26db3e442f Mon Sep 17 00:00:00 2001 From: David Maciejak Date: Sun, 8 Feb 2026 17:15:06 -0500 Subject: [PATCH] wmaker: fix titlebar glitch issues with modelock This patch is fixing 2 issues with the modelock language pixmap located in the titlebar. If wmaker is compiled with modelock support but modelock is disabled from the expert preferences, dialog windows like run command or exit will not show the language pixmap but will show empty frame borders. When modelock is enabled from the expert preferences, it needs a warm restart for the titlebars to be updated with the language pixmap. If afterwards, modelock is disabled from the expert preferences, any old windows that is gettting focus will be repainted and the language pixmap will be destroyed but the empty frame borders will still be present. Now to fully disable modelock for existing opened windows, wmaker needs a warm restart. --- src/framewin.c | 2 +- src/window.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/framewin.c b/src/framewin.c index b11f414e..e72d881d 100644 --- a/src/framewin.c +++ b/src/framewin.c @@ -1394,7 +1394,7 @@ static void handleButtonExpose(WObjDescriptor * desc, XEvent * event) #ifdef XKB_BUTTON_HINT if (button == fwin->language_button) { - if (wPreferences.modelock) + if (!fwin->flags.hide_language_button) paintButton(button, fwin->title_texture[fwin->flags.state], WMColorPixel(fwin->title_color[fwin->flags.state]), fwin->languagebutton_image, False); diff --git a/src/window.c b/src/window.c index 8a14a034..80b38430 100644 --- a/src/window.c +++ b/src/window.c @@ -1437,7 +1437,8 @@ WWindow *wManageInternalWindow(WScreen *scr, Window window, Window owner, 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,