mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-23 22:52:34 +01:00
Fixed a couple of crashing bugs generated by dereferencing of 0x0
pointers (added by the new modal loop code)
This commit is contained in:
@@ -11,7 +11,7 @@ alertPanelOnClick(WMWidget *self, void *clientData)
|
|||||||
{
|
{
|
||||||
WMAlertPanel *panel = clientData;
|
WMAlertPanel *panel = clientData;
|
||||||
|
|
||||||
WMBreakModalLoop(WMWidgetScreen(panel->othBtn));
|
WMBreakModalLoop(WMWidgetScreen(self));
|
||||||
if (self == panel->defBtn) {
|
if (self == panel->defBtn) {
|
||||||
panel->result = WAPRDefault;
|
panel->result = WAPRDefault;
|
||||||
} else if (self == panel->othBtn) {
|
} else if (self == panel->othBtn) {
|
||||||
@@ -35,7 +35,7 @@ handleKeyPress(XEvent *event, void *clientData)
|
|||||||
WMPerformButtonClick(panel->othBtn ? panel->othBtn : panel->altBtn);
|
WMPerformButtonClick(panel->othBtn ? panel->othBtn : panel->altBtn);
|
||||||
} else {
|
} else {
|
||||||
panel->result = WAPRDefault;
|
panel->result = WAPRDefault;
|
||||||
WMBreakModalLoop(WMWidgetScreen(panel->othBtn));
|
WMBreakModalLoop(WMWidgetScreen(panel->win));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ WMCreateAlertPanel(WMScreen *scrPtr, WMWindow *owner,
|
|||||||
panel = wmalloc(sizeof(WMAlertPanel));
|
panel = wmalloc(sizeof(WMAlertPanel));
|
||||||
memset(panel, 0, sizeof(WMAlertPanel));
|
memset(panel, 0, sizeof(WMAlertPanel));
|
||||||
|
|
||||||
|
|
||||||
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
panel->retKey = XKeysymToKeycode(scrPtr->display, XK_Return);
|
||||||
panel->escKey = XKeysymToKeycode(scrPtr->display, XK_Escape);
|
panel->escKey = XKeysymToKeycode(scrPtr->display, XK_Escape);
|
||||||
|
|
||||||
@@ -123,12 +123,12 @@ WMCreateAlertPanel(WMScreen *scrPtr, WMWindow *owner,
|
|||||||
(scrPtr->rootView->size.height - WMWidgetHeight(panel->win))/2);
|
(scrPtr->rootView->size.height - WMWidgetHeight(panel->win))/2);
|
||||||
|
|
||||||
WMSetWindowTitle(panel->win, "");
|
WMSetWindowTitle(panel->win, "");
|
||||||
|
|
||||||
panel->vbox = WMCreateBox(panel->win);
|
panel->vbox = WMCreateBox(panel->win);
|
||||||
WMSetBoxExpandsToParent(panel->vbox);
|
WMSetBoxExpandsToParent(panel->vbox);
|
||||||
WMSetBoxHorizontal(panel->vbox, False);
|
WMSetBoxHorizontal(panel->vbox, False);
|
||||||
WMMapWidget(panel->vbox);
|
WMMapWidget(panel->vbox);
|
||||||
|
|
||||||
hbox = WMCreateBox(panel->vbox);
|
hbox = WMCreateBox(panel->vbox);
|
||||||
WMSetBoxHorizontal(hbox, True);
|
WMSetBoxHorizontal(hbox, True);
|
||||||
WMMapWidget(hbox);
|
WMMapWidget(hbox);
|
||||||
@@ -291,7 +291,7 @@ handleKeyPress2(XEvent *event, void *clientData)
|
|||||||
WMPerformButtonClick(panel->altBtn);
|
WMPerformButtonClick(panel->altBtn);
|
||||||
} else {
|
} else {
|
||||||
/* printf("got esc\n");*/
|
/* printf("got esc\n");*/
|
||||||
WMBreakModalLoop(WMWidgetScreen(panel->altBtn));
|
WMBreakModalLoop(WMWidgetScreen(panel->win));
|
||||||
panel->result = WAPRDefault;
|
panel->result = WAPRDefault;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -370,7 +370,7 @@ endedEditingObserver(void *observerData, WMNotification *notification)
|
|||||||
if (panel->altBtn)
|
if (panel->altBtn)
|
||||||
WMPerformButtonClick(panel->altBtn);
|
WMPerformButtonClick(panel->altBtn);
|
||||||
else {
|
else {
|
||||||
WMBreakModalLoop(WMWidgetScreen(panel->defBtn));
|
WMBreakModalLoop(WMWidgetScreen(panel->win));
|
||||||
panel->result = WAPRDefault;
|
panel->result = WAPRDefault;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user