1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

Store window maximize state as hex value

As the maximize state is defined as a bit-field internally.
Better to store the flag in the WMSTATE file as hex value.
This commit is contained in:
David Maciejak
2023-02-27 23:21:50 +08:00
committed by Carlos R. Mafra
parent d1a7db8aea
commit 2dd98666f1

View File

@@ -168,6 +168,22 @@ static unsigned getInt(WMPropList * value)
return n; return n;
} }
static unsigned getHex(WMPropList * value)
{
char *val;
unsigned n;
if (!WMIsPLString(value))
return 0;
val = WMGetFromPLString(value);
if (!val)
return 0;
if (sscanf(val, "0x%04X", &n) != 1)
return 0;
return n;
}
static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp) static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp)
{ {
WScreen *scr = wwin->screen_ptr; WScreen *scr = wwin->screen_ptr;
@@ -209,7 +225,7 @@ static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp)
shaded = wwin->flags.shaded ? sYes : sNo; shaded = wwin->flags.shaded ? sYes : sNo;
miniaturized = wwin->flags.miniaturized ? sYes : sNo; miniaturized = wwin->flags.miniaturized ? sYes : sNo;
snprintf(buffer, sizeof(buffer), "%i", wwin->flags.maximized); snprintf(buffer, sizeof(buffer), "0x%04X", wwin->flags.maximized);
maximized = WMCreatePLString(buffer); maximized = WMCreatePLString(buffer);
hidden = wwin->flags.hidden ? sYes : sNo; hidden = wwin->flags.hidden ? sYes : sNo;
snprintf(buffer, sizeof(buffer), "%ix%i+%i+%i", snprintf(buffer, sizeof(buffer), "%ix%i+%i+%i",
@@ -237,6 +253,7 @@ static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp)
WMReleasePropList(name); WMReleasePropList(name);
WMReleasePropList(cmd); WMReleasePropList(cmd);
WMReleasePropList(workspace); WMReleasePropList(workspace);
WMReleasePropList(maximized);
WMReleasePropList(geometry); WMReleasePropList(geometry);
WMReleasePropList(shortcut); WMReleasePropList(shortcut);
if (wapp && wapp->app_icon && wapp->app_icon->dock) { if (wapp && wapp->app_icon && wapp->app_icon->dock) {
@@ -385,7 +402,7 @@ static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state)
WSavedState *state = wmalloc(sizeof(WSavedState)); WSavedState *state = wmalloc(sizeof(WSavedState));
WMPropList *value; WMPropList *value;
char *tmp; char *tmp;
unsigned mask, maxf; unsigned mask;
int i; int i;
state->workspace = -1; state->workspace = -1;
@@ -415,8 +432,7 @@ static WSavedState *getWindowState(WScreen * scr, WMPropList * win_state)
value = WMGetFromPLDictionary(win_state, sMaximized); value = WMGetFromPLDictionary(win_state, sMaximized);
if (value != NULL) { if (value != NULL) {
maxf = getInt(value); state->maximized = getHex(value);
state->maximized = maxf;
} }
value = WMGetFromPLDictionary(win_state, sHidden); value = WMGetFromPLDictionary(win_state, sHidden);