This is an automated email generated because a ref change occurred in the
git repository for project wmaker-crm.git.
The branch, master has been updated
via 7778df2fc598dfb85d90330fdc6d8c412c94f695 (commit)
via 156841f80ef72d856371f8aba2f4e9ef36751930 (commit)
from c82e6dad5cd2b9813f5df982fe9710429c24e81e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7778df2fc598dfb85d90330fdc6d8c412c94f695
Author: David Maciejak <
david.m...@gmail.com>
Date: Sat, 24 Jan 2026 16:46:31 -0500
URL: <
https://repo.or.cz/wmaker-crm.git/7778df2fc598dfb8>
wmaker: add keyboard control to crash window
This patch is allowing to control the wpopupbutton entries
via keyboard up/down arrows.
It happens to me a few weeks ago during development,
wmaker crashed and I lost the mouse control.
I was stuck on that dialog box without a way to select another entry.
---
src/dialog.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/dialog.c b/src/dialog.c
index 391dda23aedf..6568a158ff8a 100644
--- a/src/dialog.c
+++ b/src/dialog.c
@@ -1641,6 +1641,8 @@ typedef struct _CrashPanel {
int action; /* what to do after */
KeyCode retKey;
+ KeyCode upKey;
+ KeyCode downKey;
} CrashPanel;
@@ -1650,6 +1652,17 @@ static void handleKeyPress(XEvent * event, void *clientData)
if (event->xkey.keycode == panel->retKey) {
WMPerformButtonClick(panel->okB);
+ return;
+ }
+
+ if (event->xkey.keycode == panel->upKey) {
+ WMSelectPopUpButtonPreviousItem(panel->whatP);
+ return;
+ }
+
+ if (event->xkey.keycode == panel->downKey) {
+ WMSelectPopUpButtonNextItem(panel->whatP);
+ return;
}
}
@@ -1721,6 +1734,8 @@ int wShowCrashingDialogPanel(int whatSig)
panel = wmalloc(sizeof(CrashPanel));
panel->retKey = XKeysymToKeycode(dpy, XK_Return);
+ panel->upKey = XKeysymToKeycode(dpy, XK_Up);
+ panel->downKey = XKeysymToKeycode(dpy, XK_Down);
panel->win = WMCreateWindow(scr, "crashingDialog");
WMResizeWidget(panel->win, PWIDTH, PHEIGHT);
commit 156841f80ef72d856371f8aba2f4e9ef36751930
Author: David Maciejak <
david.m...@gmail.com>
Date: Sat, 24 Jan 2026 16:42:11 -0500
URL: <
https://repo.or.cz/wmaker-crm.git/156841f80ef72d85>
WINGs: wpopupbutton add two functions to change the displayed item
This patch is adding WMSelectPopUpButtonPreviousItem and
WMSelectPopUpButtonNextItem functions to the widget.
The WINGs lib version is bumped.
---
WINGs/WINGs/WINGs.h | 4 ++++
WINGs/wpopupbutton.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 4 ++--
3 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/WINGs/WINGs/WINGs.h b/WINGs/WINGs/WINGs.h
index b6192bdbd4cb..f8bb53f10508 100644
--- a/WINGs/WINGs/WINGs.h
+++ b/WINGs/WINGs/WINGs.h
@@ -1462,6 +1462,10 @@ void WMSetPopUpButtonEnabled(WMPopUpButton *bPtr, Bool flag);
Bool WMGetPopUpButtonEnabled(WMPopUpButton *bPtr);
+int WMSelectPopUpButtonPreviousItem(WMPopUpButton *bPtr);
+
+int WMSelectPopUpButtonNextItem(WMPopUpButton *bPtr);
+
/* ---[ WINGs/wprogressindicator.c ]------------------------------------- */
WMProgressIndicator* WMCreateProgressIndicator(WMWidget *parent);
diff --git a/WINGs/wpopupbutton.c b/WINGs/wpopupbutton.c
index 1a8156b45333..61d608463b5e 100644
--- a/WINGs/wpopupbutton.c
+++ b/WINGs/wpopupbutton.c
@@ -252,6 +252,56 @@ WMMenuItem *WMGetPopUpButtonMenuItem(WMPopUpButton * bPtr, int index)
return WMGetFromArray(bPtr->items, index);
}
+int WMSelectPopUpButtonPreviousItem(WMPopUpButton * bPtr)
+{
+ int testIndex;
+
+ CHECK_CLASS(bPtr, WC_PopUpButton);
+
+ if (bPtr->flags.pullsDown || bPtr->selectedItemIndex < 0)
+ return -1;
+
+ testIndex = bPtr->selectedItemIndex - 1;
+
+ while (testIndex >= 0 && !WMGetPopUpButtonItemEnabled(bPtr, testIndex))
+ testIndex--;
+
+ if (testIndex != -1) {
+ WMSetPopUpButtonSelectedItem(bPtr, testIndex);
+ if (bPtr->action)
+ (*bPtr->action) (bPtr, bPtr->clientData);
+ return testIndex;
+ }
+
+ return -1;
+}
+
+int WMSelectPopUpButtonNextItem(WMPopUpButton * bPtr)
+{
+ int itemCount;
+ int testIndex;
+
+ CHECK_CLASS(bPtr, WC_PopUpButton);
+
+ if (bPtr->flags.pullsDown || bPtr->selectedItemIndex < 0)
+ return -1;
+
+ itemCount = WMGetArrayItemCount(bPtr->items);
+ testIndex = bPtr->selectedItemIndex + 1;
+
+ while (testIndex < itemCount && !WMGetPopUpButtonItemEnabled(bPtr, testIndex))
+ testIndex++;
+
+ if (testIndex != itemCount) {
+ WMSetPopUpButtonSelectedItem(bPtr, testIndex);
+ if (bPtr->action)
+ (*bPtr->action) (bPtr, bPtr->clientData);
+ return testIndex;
+ }
+
+ return -1;
+}
+
static void paintPopUpButton(PopUpButton * bPtr)
{
W_Screen *scr = bPtr->view->screen;
diff --git a/
configure.ac b/
configure.ac
index 1d2bbe6e3377..7048524d66be 100644
--- a/
configure.ac
+++ b/
configure.ac
@@ -78,9 +78,9 @@ WRASTER_VERSION=$WRASTER_CURRENT:$WRASTER_REVISION:$WRASTER_AGE
AC_SUBST(WRASTER_VERSION)
dnl
dnl libWINGs
-WINGS_CURRENT=5
+WINGS_CURRENT=6
WINGS_REVISION=0
-WINGS_AGE=2
+WINGS_AGE=3
WINGS_VERSION=$WINGS_CURRENT:$WINGS_REVISION:$WINGS_AGE
AC_SUBST(WINGS_VERSION)
dnl
-----------------------------------------------------------------------
Summary of changes:
WINGs/WINGs/WINGs.h | 4 ++++
WINGs/wpopupbutton.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 4 ++--
src/dialog.c | 15 +++++++++++++
4 files changed, 71 insertions(+), 2 deletions(-)
repo.or.cz automatic notification. Contact project admin
crm...@gmail.com
if you want to unsubscribe, or site admin
ad...@repo.or.cz if you receive
no reply.
--
wmaker-crm.git ("The Window Maker window manager")