From 2910e738785b20259f269956e6f4d5864c86a85b Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Thu, 14 May 2026 17:11:31 +0200 Subject: [PATCH] WINGs/widgets: move makePixmap calls to common init Widget pixmaps (checkbox, radio, arrows, etc.) were created inside W_X11PlatformInit, so they were NULL in Wayland mode. Since makePixmap now uses RImage+RConvertImage (backend-neutral), move all makePixmap calls to common init after platform_init. --- WINGs/widgets.c | 90 ++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/WINGs/widgets.c b/WINGs/widgets.c index ebbc3d1..44459da 100644 --- a/WINGs/widgets.c +++ b/WINGs/widgets.c @@ -718,51 +718,6 @@ void W_X11PlatformInit(W_Screen *scrPtr) /* Input method */ W_InitIM(scrPtr); - /* Widget pixmaps */ - scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON, - CHECK_BUTTON_ON_WIDTH, CHECK_BUTTON_ON_HEIGHT, False); - scrPtr->checkButtonImageOff = makePixmap(scrPtr, CHECK_BUTTON_OFF, - CHECK_BUTTON_OFF_WIDTH, CHECK_BUTTON_OFF_HEIGHT, False); - scrPtr->radioButtonImageOn = makePixmap(scrPtr, RADIO_BUTTON_ON, - RADIO_BUTTON_ON_WIDTH, RADIO_BUTTON_ON_HEIGHT, False); - scrPtr->radioButtonImageOff = makePixmap(scrPtr, RADIO_BUTTON_OFF, - RADIO_BUTTON_OFF_WIDTH, RADIO_BUTTON_OFF_HEIGHT, False); - scrPtr->tristateButtonImageOn = makePixmap(scrPtr, TRISTATE_BUTTON_ON, - TRISTATE_BUTTON_ON_WIDTH, TRISTATE_BUTTON_ON_HEIGHT, False); - scrPtr->tristateButtonImageOff = makePixmap(scrPtr, TRISTATE_BUTTON_OFF, - TRISTATE_BUTTON_OFF_WIDTH, TRISTATE_BUTTON_OFF_HEIGHT, False); - scrPtr->tristateButtonImageTri = makePixmap(scrPtr, TRISTATE_BUTTON_TRI, - TRISTATE_BUTTON_TRI_WIDTH, TRISTATE_BUTTON_TRI_HEIGHT, False); - scrPtr->buttonArrow = makePixmap(scrPtr, BUTTON_ARROW, - BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, False); - scrPtr->pushedButtonArrow = makePixmap(scrPtr, BUTTON_ARROW2, - BUTTON_ARROW2_WIDTH, BUTTON_ARROW2_HEIGHT, False); - scrPtr->scrollerDimple = makePixmap(scrPtr, SCROLLER_DIMPLE, - SCROLLER_DIMPLE_WIDTH, SCROLLER_DIMPLE_HEIGHT, False); - scrPtr->upArrow = makePixmap(scrPtr, SCROLLER_ARROW_UP, - SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); - scrPtr->downArrow = makePixmap(scrPtr, SCROLLER_ARROW_DOWN, - SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); - scrPtr->leftArrow = makePixmap(scrPtr, SCROLLER_ARROW_LEFT, - SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); - scrPtr->rightArrow = makePixmap(scrPtr, SCROLLER_ARROW_RIGHT, - SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); - scrPtr->hiUpArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_UP, - SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); - scrPtr->hiDownArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_DOWN, - SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); - scrPtr->hiLeftArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_LEFT, - SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); - scrPtr->hiRightArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_RIGHT, - SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); - scrPtr->popUpIndicator = makePixmap(scrPtr, POPUP_INDICATOR, - POPUP_INDICATOR_WIDTH, POPUP_INDICATOR_HEIGHT, True); - scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR, - PULLDOWN_INDICATOR_WIDTH, PULLDOWN_INDICATOR_HEIGHT, True); - scrPtr->checkMark = makePixmap(scrPtr, CHECK_MARK, - CHECK_MARK_WIDTH, CHECK_MARK_HEIGHT, True); - loadPixmaps(scrPtr); - /* Cursors */ scrPtr->defaultCursor = XCreateFontCursor(display, XC_left_ptr); scrPtr->textCursor = XCreateFontCursor(display, XC_xterm); @@ -877,6 +832,51 @@ WMScreen *WMCreateScreenWithRContext(Display * display, int screen, RContext * c if (scrPtr->viewBackend->platform_init) scrPtr->viewBackend->platform_init(scrPtr); + /* --- Widget pixmaps (backend-neutral via RImage) --- */ + scrPtr->checkButtonImageOn = makePixmap(scrPtr, CHECK_BUTTON_ON, + CHECK_BUTTON_ON_WIDTH, CHECK_BUTTON_ON_HEIGHT, False); + scrPtr->checkButtonImageOff = makePixmap(scrPtr, CHECK_BUTTON_OFF, + CHECK_BUTTON_OFF_WIDTH, CHECK_BUTTON_OFF_HEIGHT, False); + scrPtr->radioButtonImageOn = makePixmap(scrPtr, RADIO_BUTTON_ON, + RADIO_BUTTON_ON_WIDTH, RADIO_BUTTON_ON_HEIGHT, False); + scrPtr->radioButtonImageOff = makePixmap(scrPtr, RADIO_BUTTON_OFF, + RADIO_BUTTON_OFF_WIDTH, RADIO_BUTTON_OFF_HEIGHT, False); + scrPtr->tristateButtonImageOn = makePixmap(scrPtr, TRISTATE_BUTTON_ON, + TRISTATE_BUTTON_ON_WIDTH, TRISTATE_BUTTON_ON_HEIGHT, False); + scrPtr->tristateButtonImageOff = makePixmap(scrPtr, TRISTATE_BUTTON_OFF, + TRISTATE_BUTTON_OFF_WIDTH, TRISTATE_BUTTON_OFF_HEIGHT, False); + scrPtr->tristateButtonImageTri = makePixmap(scrPtr, TRISTATE_BUTTON_TRI, + TRISTATE_BUTTON_TRI_WIDTH, TRISTATE_BUTTON_TRI_HEIGHT, False); + scrPtr->buttonArrow = makePixmap(scrPtr, BUTTON_ARROW, + BUTTON_ARROW_WIDTH, BUTTON_ARROW_HEIGHT, False); + scrPtr->pushedButtonArrow = makePixmap(scrPtr, BUTTON_ARROW2, + BUTTON_ARROW2_WIDTH, BUTTON_ARROW2_HEIGHT, False); + scrPtr->scrollerDimple = makePixmap(scrPtr, SCROLLER_DIMPLE, + SCROLLER_DIMPLE_WIDTH, SCROLLER_DIMPLE_HEIGHT, False); + scrPtr->upArrow = makePixmap(scrPtr, SCROLLER_ARROW_UP, + SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); + scrPtr->downArrow = makePixmap(scrPtr, SCROLLER_ARROW_DOWN, + SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); + scrPtr->leftArrow = makePixmap(scrPtr, SCROLLER_ARROW_LEFT, + SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); + scrPtr->rightArrow = makePixmap(scrPtr, SCROLLER_ARROW_RIGHT, + SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); + scrPtr->hiUpArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_UP, + SCROLLER_ARROW_UP_WIDTH, SCROLLER_ARROW_UP_HEIGHT, True); + scrPtr->hiDownArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_DOWN, + SCROLLER_ARROW_DOWN_WIDTH, SCROLLER_ARROW_DOWN_HEIGHT, True); + scrPtr->hiLeftArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_LEFT, + SCROLLER_ARROW_LEFT_WIDTH, SCROLLER_ARROW_LEFT_HEIGHT, True); + scrPtr->hiRightArrow = makePixmap(scrPtr, HI_SCROLLER_ARROW_RIGHT, + SCROLLER_ARROW_RIGHT_WIDTH, SCROLLER_ARROW_RIGHT_HEIGHT, True); + scrPtr->popUpIndicator = makePixmap(scrPtr, POPUP_INDICATOR, + POPUP_INDICATOR_WIDTH, POPUP_INDICATOR_HEIGHT, True); + scrPtr->pullDownIndicator = makePixmap(scrPtr, PULLDOWN_INDICATOR, + PULLDOWN_INDICATOR_WIDTH, PULLDOWN_INDICATOR_HEIGHT, True); + scrPtr->checkMark = makePixmap(scrPtr, CHECK_MARK, + CHECK_MARK_WIDTH, CHECK_MARK_HEIGHT, True); + loadPixmaps(scrPtr); + /* --- Final common init --- */ scrPtr->rootView = W_CreateRootView(scrPtr); scrPtr->balloon = W_CreateBalloon(scrPtr);