forked from enlightenment/enlightenment
Make hints who want to change the border set border.name = NULL, and move
tests for border.name to client.border.changed test. If a border changes and the border is shaded, remember the change and apply it when the border no longer is shaded. SVN revision: 23365
This commit is contained in:
parent
f689a89e1b
commit
88973ff89c
|
@ -7,8 +7,8 @@
|
|||
#include "config.h"
|
||||
|
||||
#define USE_IPC
|
||||
/* #define OBJECT_PARANOIA_CHECK */
|
||||
/* #define OBJECT_CHECK */
|
||||
#define OBJECT_PARANOIA_CHECK
|
||||
#define OBJECT_CHECK
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -4596,20 +4596,15 @@ _e_border_eval(E_Border *bd)
|
|||
if (bd->client.netwm.fetch.type)
|
||||
{
|
||||
e_hints_window_type_get(bd);
|
||||
if (((!bd->lock_border) || (!bd->client.border.name)) && (!bd->shaded))
|
||||
{
|
||||
if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP)
|
||||
if ((!bd->lock_border) || (!bd->client.border.name))
|
||||
{
|
||||
if (bd->client.border.name) evas_stringshare_del(bd->client.border.name);
|
||||
bd->client.border.name = evas_stringshare_add("borderless");
|
||||
bd->client.border.name = NULL;
|
||||
bd->client.border.changed = 1;
|
||||
}
|
||||
else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
|
||||
if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
|
||||
{
|
||||
if (bd->client.border.name) evas_stringshare_del(bd->client.border.name);
|
||||
bd->client.border.name = evas_stringshare_add("borderless");
|
||||
bd->client.border.changed = 1;
|
||||
|
||||
/* TODO: Make this user options */
|
||||
if (!bd->client.netwm.state.skip_pager)
|
||||
{
|
||||
bd->client.netwm.state.skip_pager = 1;
|
||||
|
@ -4621,7 +4616,6 @@ _e_border_eval(E_Border *bd)
|
|||
bd->client.netwm.update.state = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bd->client.netwm.fetch.type = 0;
|
||||
}
|
||||
|
@ -4908,15 +4902,11 @@ _e_border_eval(E_Border *bd)
|
|||
}
|
||||
if (bd->client.mwm.borderless != pb)
|
||||
{
|
||||
if (((!bd->lock_border) || (!bd->client.border.name))
|
||||
&& (!bd->shaded))
|
||||
if ((!bd->lock_border) || (!bd->client.border.name))
|
||||
{
|
||||
if (bd->client.border.name)
|
||||
evas_stringshare_del(bd->client.border.name);
|
||||
if (bd->client.mwm.borderless)
|
||||
bd->client.border.name = evas_stringshare_add("borderless");
|
||||
else
|
||||
bd->client.border.name = evas_stringshare_add("default");
|
||||
bd->client.border.name = NULL;
|
||||
bd->client.border.changed = 1;
|
||||
}
|
||||
}
|
||||
|
@ -4939,38 +4929,11 @@ _e_border_eval(E_Border *bd)
|
|||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_add_event");
|
||||
ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL);
|
||||
|
||||
if (((!bd->lock_border) || (!bd->client.border.name))
|
||||
&& (!bd->shaded))
|
||||
if ((!bd->lock_border) || (!bd->client.border.name))
|
||||
{
|
||||
if (bd->client.border.name)
|
||||
evas_stringshare_del(bd->client.border.name);
|
||||
if (bd->client.mwm.borderless)
|
||||
bd->client.border.name = evas_stringshare_add("borderless");
|
||||
else if (((bd->client.icccm.transient_for != 0) ||
|
||||
(bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) &&
|
||||
(bd->client.icccm.min_w == bd->client.icccm.max_w) &&
|
||||
(bd->client.icccm.min_h == bd->client.icccm.max_h))
|
||||
bd->client.border.name = evas_stringshare_add("noresize_dialog");
|
||||
else if ((bd->client.icccm.min_w == bd->client.icccm.max_w) &&
|
||||
(bd->client.icccm.min_h == bd->client.icccm.max_h))
|
||||
bd->client.border.name = evas_stringshare_add("noresize");
|
||||
else if (bd->client.shaped)
|
||||
bd->client.border.name = evas_stringshare_add("shaped");
|
||||
else if ((!bd->client.icccm.accepts_focus) &&
|
||||
(!bd->client.icccm.take_focus))
|
||||
bd->client.border.name = evas_stringshare_add("nofocus");
|
||||
else if (bd->client.icccm.urgent)
|
||||
bd->client.border.name = evas_stringshare_add("urgent");
|
||||
else if ((bd->client.icccm.transient_for != 0) ||
|
||||
(bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG))
|
||||
bd->client.border.name = evas_stringshare_add("dialog");
|
||||
else if (bd->client.netwm.state.modal)
|
||||
bd->client.border.name = evas_stringshare_add("modal");
|
||||
else if ((bd->client.netwm.state.skip_taskbar) ||
|
||||
(bd->client.netwm.state.skip_pager))
|
||||
bd->client.border.name = evas_stringshare_add("skipped");
|
||||
else
|
||||
bd->client.border.name = evas_stringshare_add("default");
|
||||
bd->client.border.name = NULL;
|
||||
bd->client.border.changed = 1;
|
||||
}
|
||||
if (!bd->remember)
|
||||
|
@ -5089,7 +5052,7 @@ _e_border_eval(E_Border *bd)
|
|||
}
|
||||
}
|
||||
|
||||
if (bd->client.border.changed)
|
||||
if ((bd->client.border.changed) && (!bd->shaded))
|
||||
{
|
||||
Evas_Object *o;
|
||||
char buf[4096];
|
||||
|
@ -5098,7 +5061,35 @@ _e_border_eval(E_Border *bd)
|
|||
int ok;
|
||||
|
||||
if (!bd->client.border.name)
|
||||
{
|
||||
if (bd->client.mwm.borderless)
|
||||
bd->client.border.name = evas_stringshare_add("borderless");
|
||||
else if (((bd->client.icccm.transient_for != 0) ||
|
||||
(bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG)) &&
|
||||
(bd->client.icccm.min_w == bd->client.icccm.max_w) &&
|
||||
(bd->client.icccm.min_h == bd->client.icccm.max_h))
|
||||
bd->client.border.name = evas_stringshare_add("noresize_dialog");
|
||||
else if ((bd->client.icccm.min_w == bd->client.icccm.max_w) &&
|
||||
(bd->client.icccm.min_h == bd->client.icccm.max_h))
|
||||
bd->client.border.name = evas_stringshare_add("noresize");
|
||||
else if (bd->client.shaped)
|
||||
bd->client.border.name = evas_stringshare_add("shaped");
|
||||
else if ((!bd->client.icccm.accepts_focus) &&
|
||||
(!bd->client.icccm.take_focus))
|
||||
bd->client.border.name = evas_stringshare_add("nofocus");
|
||||
else if (bd->client.icccm.urgent)
|
||||
bd->client.border.name = evas_stringshare_add("urgent");
|
||||
else if ((bd->client.icccm.transient_for != 0) ||
|
||||
(bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG))
|
||||
bd->client.border.name = evas_stringshare_add("dialog");
|
||||
else if (bd->client.netwm.state.modal)
|
||||
bd->client.border.name = evas_stringshare_add("modal");
|
||||
else if ((bd->client.netwm.state.skip_taskbar) ||
|
||||
(bd->client.netwm.state.skip_pager))
|
||||
bd->client.border.name = evas_stringshare_add("skipped");
|
||||
else
|
||||
bd->client.border.name = evas_stringshare_add("default");
|
||||
}
|
||||
if (bd->bg_object)
|
||||
{
|
||||
bd->w -= (bd->client_inset.l + bd->client_inset.r);
|
||||
|
|
Loading…
Reference in New Issue