revert patch. never tested by submiter.

SVN revision: 33950
This commit is contained in:
Carsten Haitzler 2008-03-07 10:35:58 +00:00
parent b02b82e4b4
commit 5551c78397
4 changed files with 50 additions and 14 deletions

View File

@ -3266,6 +3266,8 @@ _e_border_free(E_Border *bd)
free(bd->client.netwm.icons[i].data);
free(bd->client.netwm.icons);
}
if (bd->client.netwm.extra_types)
free(bd->client.netwm.extra_types);
if (bd->client.border.name) evas_stringshare_del(bd->client.border.name);
if (bd->bordername) evas_stringshare_del(bd->bordername);
if (bd->client.icccm.title) free(bd->client.icccm.title);
@ -5054,6 +5056,7 @@ _e_border_eval(E_Border *bd)
int rem_change = 0;
int send_event = 1;
_e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_FETCH, bd);
/* fetch any info queued to be fetched */
if (bd->client.icccm.fetch.client_leader)
{
@ -5812,6 +5815,7 @@ _e_border_eval(E_Border *bd)
}
_e_border_hook_call(E_BORDER_HOOK_EVAL_POST_FETCH, bd);
_e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_BORDER_ASSIGN, bd);
if ((bd->client.border.changed) && (!bd->shaded) &&
(!(((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN))))
@ -5990,6 +5994,9 @@ _e_border_eval(E_Border *bd)
bd->need_reparent = 0;
}
_e_border_hook_call(E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN, bd);
_e_border_hook_call(E_BORDER_HOOK_EVAL_PRE_NEW_BORDER, bd);
if (bd->new_client)
{
// printf("##- NEW CLIENT SETUP 0x%x\n", bd->client.win);
@ -6210,6 +6217,8 @@ _e_border_eval(E_Border *bd)
}
}
_e_border_hook_call(E_BORDER_HOOK_EVAL_POST_NEW_BORDER, bd);
/* effect changes to the window border itself */
if ((bd->changes.shading))
{

View File

@ -80,7 +80,12 @@ typedef enum _E_Window_Placement
typedef enum _E_Border_Hook_Point
{
E_BORDER_HOOK_EVAL_POST_FETCH
E_BORDER_HOOK_EVAL_PRE_FETCH,
E_BORDER_HOOK_EVAL_POST_FETCH,
E_BORDER_HOOK_EVAL_PRE_BORDER_ASSIGN,
E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN,
E_BORDER_HOOK_EVAL_PRE_NEW_BORDER,
E_BORDER_HOOK_EVAL_POST_NEW_BORDER,
} E_Border_Hook_Point;
typedef struct _E_Border E_Border;
@ -296,6 +301,8 @@ struct _E_Border
} action;
Ecore_X_Window_Type type;
Ecore_X_Window_Type *extra_types;
int extra_types_num;
int startup_id;
struct {

View File

@ -656,7 +656,36 @@ e_hints_window_type_set(E_Border *bd)
EAPI void
e_hints_window_type_get(E_Border *bd)
{
ecore_x_netwm_window_type_get(bd->client.win, &bd->client.netwm.type);
Ecore_X_Window_Type *types = NULL;
int num, i;
num = ecore_x_netwm_window_types_get(bd->client.win, &types);
if (bd->client.netwm.extra_types)
{
free(bd->client.netwm.extra_types);
bd->client.netwm.extra_types = NULL;
bd->client.netwm.extra_types_num = 0;
}
if (num == 0)
{
bd->client.netwm.type = ECORE_X_WINDOW_TYPE_UNKNOWN;
}
else
{
bd->client.netwm.type = types[0];
if (num > 1)
{
bd->client.netwm.extra_types =
malloc((num - 1) * sizeof(Ecore_X_Window_Type));
if (bd->client.netwm.extra_types)
{
for (i = 1; i < num; i++)
bd->client.netwm.extra_types[i - 1] = types[i];
bd->client.netwm.extra_types_num = num - 1;
}
}
free(types);
}
}
EAPI void

View File

@ -592,24 +592,15 @@ e_util_filename_escape(const char *filename)
while (*p)
{
if ((q - buf) > 4090) return NULL;
if (*p == '\'')
{
*q= '\'';
q++;
*q = '\\';
q++;
*q= '\'';
q++;
}
else if (
if (
(*p == ' ') || (*p == '\t') || (*p == '\n') ||
(*p == '\\') || (*p == '\"') || (*p == '\?') ||
(*p == '\\') || (*p == '\'') || (*p == '\"') ||
(*p == ';') || (*p == '!') || (*p == '#') ||
(*p == '$') || (*p == '%') || (*p == '&') ||
(*p == '*') || (*p == '(') || (*p == ')') ||
(*p == '[') || (*p == ']') || (*p == '{') ||
(*p == '}') || (*p == '|') || (*p == '<') ||
(*p == '>')
(*p == '>') || (*p == '?')
)
{
*q = '\\';