From cfe111cbe153d9c8a65d0851c9c4a7bb8a936134 Mon Sep 17 00:00:00 2001 From: sebastid Date: Sat, 18 Jun 2005 12:51:00 +0000 Subject: [PATCH] IPC for maximize policy. SVN revision: 15419 --- src/bin/e_border.c | 6 ++--- src/bin/e_border.h | 5 +++-- src/bin/e_ipc_handlers.h | 42 ++++++++++++++++++++++++++++++++++- src/bin/e_ipc_handlers_list.h | 3 +++ 4 files changed, 50 insertions(+), 6 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index ecb1407f2..17df891cd 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -1173,7 +1173,7 @@ e_border_maximize(E_Border *bd) /* FIXME */ break; } - bd->maximized = 1; + bd->maximized = e_config->maximize_policy; bd->changes.pos = 1; bd->changes.size = 1; bd->changed = 1; @@ -1192,9 +1192,8 @@ e_border_unmaximize(E_Border *bd) { // printf("UNMAXIMIZE!!\n"); e_hints_window_maximized_set(bd, 0); - bd->maximized = 0; - switch (e_config->maximize_policy) + switch (bd->maximized) { case E_MAXIMIZE_ZOOM: /* FIXME */ @@ -1233,6 +1232,7 @@ e_border_unmaximize(E_Border *bd) /* FIXME */ break; } + bd->maximized = 0; e_border_move_resize(bd, bd->saved.x, bd->saved.y, bd->saved.w, bd->saved.h); diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 985b898d7..26c4b9672 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -35,12 +35,13 @@ typedef enum _E_Focus_Policy typedef enum _E_Maximize_Policy { + E_MAXIMIZE_NONE, E_MAXIMIZE_ZOOM, E_MAXIMIZE_FULLSCREEN, E_MAXIMIZE_SMART, E_MAXIMIZE_EXPAND, E_MAXIMIZE_FILL -} E_Maximise_Policy; +} E_Maximize_Policy; @@ -254,7 +255,7 @@ struct _E_Border unsigned char re_manage : 1; unsigned char shading : 1; unsigned char shaded : 1; - unsigned char maximized : 1; + E_Maximize_Policy maximized; unsigned char iconic : 1; unsigned char sticky : 1; unsigned char shaped : 1; diff --git a/src/bin/e_ipc_handlers.h b/src/bin/e_ipc_handlers.h index aa5f9175b..60dae15c5 100644 --- a/src/bin/e_ipc_handlers.h +++ b/src/bin/e_ipc_handlers.h @@ -929,7 +929,7 @@ break; /****************************************************************************/ #define HDL E_IPC_OP_FOCUS_POLICY_SET #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) REQ_INT_START(HDL) int value = 0; @@ -1410,6 +1410,46 @@ break; #endif #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 } #endif diff --git a/src/bin/e_ipc_handlers_list.h b/src/bin/e_ipc_handlers_list.h index be0091453..a88754f58 100644 --- a/src/bin/e_ipc_handlers_list.h +++ b/src/bin/e_ipc_handlers_list.h @@ -81,3 +81,6 @@ #define E_IPC_OP_FOCUS_POLICY_SET 81 #define E_IPC_OP_FOCUS_POLICY_GET 82 #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