diff --git a/ChangeLog b/ChangeLog index 29f5e11c..922d6ca7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -48,6 +48,10 @@ Changes since version 0.61.1: - added Jim Knoble 's cursor thing patch - fixed lock of wmaker when clicking on menu multiple times - made transients appear near their owner +- fixed crash bug with broken java implementations (Miguel Covarrubias + ) +- made Revert on attributes panel apply the reverted changes immediately + to avoid inconsistent internal state Changes since version 0.61.0: ............................. diff --git a/WPrefs.app/MenuPreferences.c b/WPrefs.app/MenuPreferences.c index 6cd11b05..3631c0c2 100644 --- a/WPrefs.app/MenuPreferences.c +++ b/WPrefs.app/MenuPreferences.c @@ -204,7 +204,7 @@ createPanel(Panel *p) panel->wrapB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->wrapB, 440, 32); WMMoveWidget(panel->wrapB, 25, 8); - WMSetButtonText(panel->wrapB, _("Always open submenus inside the screen, instead of scrolling.\nNote: this can be an annoyance at some circumstances.")); + WMSetButtonText(panel->wrapB, _("Always open submenus inside the screen, instead of scrolling.\nNote: this is annoying.")); panel->autoB = WMCreateSwitchButton(panel->optF); WMResizeWidget(panel->autoB, 440, 20); diff --git a/WPrefs.app/Preferences.c b/WPrefs.app/Preferences.c index 83f9456e..051c498e 100644 --- a/WPrefs.app/Preferences.c +++ b/WPrefs.app/Preferences.c @@ -163,8 +163,8 @@ createPanel(Panel *p) WMWidgetView(panel->sizeF)); panel->sizeP = WMCreatePopUpButton(panel->sizeF); - WMResizeWidget(panel->sizeP, 180, 20); - WMMoveWidget(panel->sizeP, 32, 24); + WMResizeWidget(panel->sizeP, 200, 20); + WMMoveWidget(panel->sizeP, 22, 24); WMAddPopUpButtonItem(panel->sizeP, _("Corner of screen")); WMAddPopUpButtonItem(panel->sizeP, _("Center of screen")); WMAddPopUpButtonItem(panel->sizeP, _("Center of resized window")); @@ -183,8 +183,8 @@ createPanel(Panel *p) WMWidgetView(panel->posiF)); panel->posiP = WMCreatePopUpButton(panel->posiF); - WMResizeWidget(panel->posiP, 180, 20); - WMMoveWidget(panel->posiP, 32, 24); + WMResizeWidget(panel->posiP, 200, 20); + WMMoveWidget(panel->posiP, 22, 24); WMAddPopUpButtonItem(panel->posiP, _("Corner of screen")); WMAddPopUpButtonItem(panel->posiP, _("Center of screen")); WMAddPopUpButtonItem(panel->posiP, _("Center of resized window")); diff --git a/src/client.c b/src/client.c index b89d0062..ec558354 100644 --- a/src/client.c +++ b/src/client.c @@ -341,7 +341,7 @@ wClientCheckProperty(WWindow *wwin, XPropertyEvent *event) free(tmp); } break; - + case XA_WM_ICON_NAME: #ifdef KWM_HINTS wKWMSendEventMessage(wwin, WKWMChangedClient); @@ -679,6 +679,13 @@ wClientGetNormalHints(WWindow *wwin, XWindowAttributes *wattribs, Bool geometry, } /* some buggy apps set weird hints.. */ + if (wwin->normal_hints->min_width <= 0) + wwin->normal_hints->min_width = MIN_WINDOW_SIZE; + + if (wwin->normal_hints->min_height <= 0) + wwin->normal_hints->min_height = MIN_WINDOW_SIZE; + + if (wwin->normal_hints->max_width < wwin->normal_hints->min_width) wwin->normal_hints->max_width = wwin->normal_hints->min_width; @@ -707,12 +714,6 @@ wClientGetNormalHints(WWindow *wwin, XWindowAttributes *wattribs, Bool geometry, wwin->normal_hints->max_aspect.y = 1; } - if (wwin->normal_hints->min_width <= 0) - wwin->normal_hints->min_width = MIN_WINDOW_SIZE; - - if (wwin->normal_hints->min_height <= 0) - wwin->normal_hints->min_height = MIN_WINDOW_SIZE; - if (wwin->normal_hints->min_height > wwin->normal_hints->max_height) { wwin->normal_hints->min_height = wwin->normal_hints->max_height; } diff --git a/src/window.c b/src/window.c index d7b20b1a..a824002a 100644 --- a/src/window.c +++ b/src/window.c @@ -1844,8 +1844,11 @@ wWindowConstrainSize(WWindow *wwin, int *nwidth, int *nheight) height = (((height - minH) / hinc) * hinc) + minH; } - *nwidth = width; - *nheight = height; + /* broken stupid apps may cause preposterous values for these.. */ + if (width > 0) + *nwidth = width; + if (height > 0) + *nheight = height; } diff --git a/src/winspector.c b/src/winspector.c index f0916716..ead347e2 100644 --- a/src/winspector.c +++ b/src/winspector.c @@ -1045,6 +1045,11 @@ revertSettings(WMButton *button, InspectorPanel *panel) } else { WMSetPopUpButtonSelectedItem(panel->wsP, 0); } + + /* must auto apply, so that there wno't be internal + * inconsistencies between the state in the flags and + * the actual state of the window */ + applySettings(panel->applyBtn, panel); }