IPC for maximize policy.

SVN revision: 15419
This commit is contained in:
sebastid 2005-06-18 12:51:00 +00:00 committed by sebastid
parent 89ce449586
commit cfe111cbe1
4 changed files with 50 additions and 6 deletions

View File

@ -1173,7 +1173,7 @@ e_border_maximize(E_Border *bd)
/* FIXME */ /* FIXME */
break; break;
} }
bd->maximized = 1; bd->maximized = e_config->maximize_policy;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->changes.size = 1; bd->changes.size = 1;
bd->changed = 1; bd->changed = 1;
@ -1192,9 +1192,8 @@ e_border_unmaximize(E_Border *bd)
{ {
// printf("UNMAXIMIZE!!\n"); // printf("UNMAXIMIZE!!\n");
e_hints_window_maximized_set(bd, 0); e_hints_window_maximized_set(bd, 0);
bd->maximized = 0;
switch (e_config->maximize_policy) switch (bd->maximized)
{ {
case E_MAXIMIZE_ZOOM: case E_MAXIMIZE_ZOOM:
/* FIXME */ /* FIXME */
@ -1233,6 +1232,7 @@ e_border_unmaximize(E_Border *bd)
/* FIXME */ /* FIXME */
break; break;
} }
bd->maximized = 0;
e_border_move_resize(bd, bd->saved.x, bd->saved.y, bd->saved.w, bd->saved.h); e_border_move_resize(bd, bd->saved.x, bd->saved.y, bd->saved.w, bd->saved.h);

View File

@ -35,12 +35,13 @@ typedef enum _E_Focus_Policy
typedef enum _E_Maximize_Policy typedef enum _E_Maximize_Policy
{ {
E_MAXIMIZE_NONE,
E_MAXIMIZE_ZOOM, E_MAXIMIZE_ZOOM,
E_MAXIMIZE_FULLSCREEN, E_MAXIMIZE_FULLSCREEN,
E_MAXIMIZE_SMART, E_MAXIMIZE_SMART,
E_MAXIMIZE_EXPAND, E_MAXIMIZE_EXPAND,
E_MAXIMIZE_FILL E_MAXIMIZE_FILL
} E_Maximise_Policy; } E_Maximize_Policy;
@ -254,7 +255,7 @@ struct _E_Border
unsigned char re_manage : 1; unsigned char re_manage : 1;
unsigned char shading : 1; unsigned char shading : 1;
unsigned char shaded : 1; unsigned char shaded : 1;
unsigned char maximized : 1; E_Maximize_Policy maximized;
unsigned char iconic : 1; unsigned char iconic : 1;
unsigned char sticky : 1; unsigned char sticky : 1;
unsigned char shaped : 1; unsigned char shaped : 1;

View File

@ -929,7 +929,7 @@ break;
/****************************************************************************/ /****************************************************************************/
#define HDL E_IPC_OP_FOCUS_POLICY_SET #define HDL E_IPC_OP_FOCUS_POLICY_SET
#if (TYPE == E_REMOTE_OPTIONS) #if (TYPE == E_REMOTE_OPTIONS)
OP("-focus-policy-set", 1, "Set the focus policy. OPT1 = CLICK or MOUSE or SLOPPY", 0, HDL) OP("-focus-policy-set", 1, "Set the focus policy. OPT1 = CLICK, MOUSE or SLOPPY", 0, HDL)
#elif (TYPE == E_REMOTE_OUT) #elif (TYPE == E_REMOTE_OUT)
REQ_INT_START(HDL) REQ_INT_START(HDL)
int value = 0; int value = 0;
@ -1410,6 +1410,46 @@ break;
#endif #endif
#undef HDL #undef HDL
/****************************************************************************/
#define HDL E_IPC_OP_MAXIMIZE_POLICY_SET
#if (TYPE == E_REMOTE_OPTIONS)
OP("-maximize-policy-set", 1, "Set the maximize policy. OPT1 = ZOOM, FULLSCREEN, SMART, EXPAND or FILL", 0, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_INT_START(HDL)
int value = 0;
if (!strcmp(params[0], "ZOOM")) value = E_MAXIMIZE_ZOOM;
else if (!strcmp(params[0], "FULLSCREEN")) value = E_MAXIMIZE_FULLSCREEN;
else if (!strcmp(params[0], "SMART")) value = E_MAXIMIZE_SMART;
else if (!strcmp(params[0], "EXPAND")) value = E_MAXIMIZE_EXPAND;
else if (!strcmp(params[0], "FILL")) value = E_MAXIMIZE_FILL;
else
{
printf("maximize must be ZOOM, FULLSCREEN, SMART, EXPAND or FILL\n");
exit(-1);
}
REQ_INT_END(value, HDL);
#elif (TYPE == E_WM_IN)
START_INT(value, HDL);
e_config->maximize_policy = value;
E_CONFIG_LIMIT(e_config->maximize_policy, E_MAXIMIZE_ZOOM, E_MAXIMIZE_FILL);
SAVE;
END_INT
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
/****************************************************************************/
#define HDL E_IPC_OP_MAXIMIZE_POLICY_GET
#if (TYPE == E_REMOTE_OPTIONS)
OP("-maximize-policy-get", 0, "Get maximize policy", 1, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_NULL(HDL);
#elif (TYPE == E_WM_IN)
SEND_INT(e_config->maximize_policy, E_IPC_OP_MAXIMIZE_POLICY_GET_REPLY, HDL);
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
#if 0 #if 0
} }
#endif #endif

View File

@ -81,3 +81,6 @@
#define E_IPC_OP_FOCUS_POLICY_SET 81 #define E_IPC_OP_FOCUS_POLICY_SET 81
#define E_IPC_OP_FOCUS_POLICY_GET 82 #define E_IPC_OP_FOCUS_POLICY_GET 82
#define E_IPC_OP_FOCUS_POLICY_GET_REPLY 83 #define E_IPC_OP_FOCUS_POLICY_GET_REPLY 83
#define E_IPC_OP_MAXIMIZE_POLICY_SET 84
#define E_IPC_OP_MAXIMIZE_POLICY_GET 85
#define E_IPC_OP_MAXIMIZE_POLICY_GET_REPLY 86