forked from enlightenment/enlightenment
mah mah mah... fixed soem initial placement probs related to being too keen
on changing borders all the time.. shoudl be more efficent and faster now too SVN revision: 5722
This commit is contained in:
parent
d90ac55831
commit
84fae7ac6d
65
src/border.c
65
src/border.c
|
@ -200,9 +200,6 @@ e_configure_request(Ecore_Event * ev)
|
|||
if (b->current.shaded < 1)
|
||||
b->current.shaded = 1;
|
||||
}
|
||||
/* b->client.w = e->w;
|
||||
b->client.h = e->h;
|
||||
*/
|
||||
b->current.requested.w = e->w + pl + pr;
|
||||
b->current.requested.h = e->h + pt + pb;
|
||||
}
|
||||
|
@ -271,6 +268,7 @@ e_property(Ecore_Event * ev)
|
|||
if (b)
|
||||
{
|
||||
e_icccm_handle_property_change(e->atom, b);
|
||||
e_border_apply_border(b);
|
||||
}
|
||||
}
|
||||
current_ev = NULL;
|
||||
|
@ -462,23 +460,6 @@ e_focus_in(Ecore_Event * ev)
|
|||
b->click_grab = NULL;
|
||||
}
|
||||
}
|
||||
/* FUCKED UP:
|
||||
* look at this debug output:
|
||||
* f in 800003
|
||||
* to: Fukeneh!
|
||||
* ungrab ctf buttons
|
||||
* f out 400003
|
||||
* from: F..... Oath!
|
||||
* grab dem buttonz!
|
||||
* f in 400003
|
||||
* to: F..... Oath!
|
||||
* ungrab ctf buttons
|
||||
*
|
||||
* first the focus automatically reverts to Fukeneh (the window)
|
||||
* now i click on F...... Oath - but i get aofocus out event from
|
||||
* F..... Oath - it had no focus... but i get a focus out.. i should
|
||||
* be getting a focus out for fukeneh!
|
||||
*/
|
||||
}
|
||||
current_ev = NULL;
|
||||
|
||||
|
@ -590,9 +571,7 @@ e_mouse_down(Ecore_Event * ev)
|
|||
{
|
||||
Evas evas;
|
||||
int x, y;
|
||||
|
||||
|
||||
|
||||
|
||||
evas = b->evas.l;
|
||||
ecore_window_get_root_relative_location(evas_get_window(evas),
|
||||
&x, &y);
|
||||
|
@ -702,6 +681,7 @@ e_mouse_move(Ecore_Event * ev)
|
|||
mouse_x = e->rx;
|
||||
mouse_y = e->ry;
|
||||
b = e_border_find_by_window(e->win);
|
||||
/* D("motion... %3.8f\n", ecore_get_time());*/
|
||||
if (b)
|
||||
{
|
||||
if (e->win == b->win.main) e_cb_border_mouse_move(b, ev);
|
||||
|
@ -1133,10 +1113,14 @@ e_cb_border_mouse_down(E_Border *b, Ecore_Event *e)
|
|||
x, y, border_mouse_x, border_mouse_y);
|
||||
if (!e_action_start(class, act, bt, NULL, mods, E_OBJECT(b), NULL,
|
||||
x, y, border_mouse_x, border_mouse_y))
|
||||
ecore_pointer_ungrab(((Ecore_Event_Mouse_Down *)(e->event))->time);
|
||||
{
|
||||
ecore_pointer_ungrab(((Ecore_Event_Mouse_Down *)(e->event))->time);
|
||||
}
|
||||
else
|
||||
ecore_pointer_grab(((Ecore_Event_Mouse_Down *)(e->event))->win,
|
||||
((Ecore_Event_Mouse_Down *)(e->event))->time);
|
||||
{
|
||||
ecore_pointer_grab(((Ecore_Event_Mouse_Down *)(e->event))->win,
|
||||
((Ecore_Event_Mouse_Down *)(e->event))->time);
|
||||
}
|
||||
}
|
||||
|
||||
D_RETURN;
|
||||
|
@ -1295,17 +1279,20 @@ e_border_apply_border(E_Border *b)
|
|||
if ((!b->client.titlebar) && (!b->client.border)) style = "borderless";
|
||||
if (b->border_style) style = b->border_style;
|
||||
|
||||
if (b->current.selected) prop_selected = 1;
|
||||
if (b->current.shaded == b->client.h) prop_shaded = 1;
|
||||
if (b->client.sticky) prop_sticky = 1;
|
||||
if (b->current.selected) prop_selected = 1;
|
||||
if ((b->current.shaded > 0) &&
|
||||
(b->current.shaded == b->client.h)) prop_shaded = 1;
|
||||
if (b->client.sticky) prop_sticky = 1;
|
||||
|
||||
sprintf(border, "selected-%i.sticky-%i.shaded-%i.bits.db",
|
||||
prop_selected, prop_sticky, prop_shaded);
|
||||
|
||||
borders = e_config_get("borders");
|
||||
sprintf(buf, "%s%s/%s", borders, style, border);
|
||||
|
||||
/* if it's not changed - abort and dont do anything */
|
||||
if ((b->border_file) && (!strcmp(buf, b->border_file))) D_RETURN;
|
||||
|
||||
IF_FREE(b->border_file);
|
||||
e_strdup(b->border_file, buf);
|
||||
|
||||
|
@ -2180,18 +2167,8 @@ e_border_update(E_Border *b)
|
|||
size_changed = 1;
|
||||
if ((size_changed) && (b->current.has_shape))
|
||||
shape_changed = 1;
|
||||
if (b->bits.new)
|
||||
{
|
||||
ecore_window_gravity_set(b->win.container, StaticGravity);
|
||||
border_changed = 1;
|
||||
}
|
||||
if ((border_changed) && (b->current.has_shape))
|
||||
shape_changed = 1;
|
||||
if (b->current.visible != b->previous.visible)
|
||||
visibility_changed = 1;
|
||||
if (b->current.selected != b->previous.selected)
|
||||
state_changed = 1;
|
||||
|
||||
if (state_changed)
|
||||
{
|
||||
e_border_apply_border(b);
|
||||
|
@ -2202,6 +2179,16 @@ e_border_update(E_Border *b)
|
|||
size_changed = 1;
|
||||
}
|
||||
}
|
||||
if (b->bits.new)
|
||||
{
|
||||
ecore_window_gravity_set(b->win.container, StaticGravity);
|
||||
border_changed = 1;
|
||||
}
|
||||
if ((border_changed) && (b->current.has_shape))
|
||||
shape_changed = 1;
|
||||
if (b->current.visible != b->previous.visible)
|
||||
visibility_changed = 1;
|
||||
|
||||
if ((location_changed) && (!size_changed))
|
||||
{
|
||||
int pl, pr, pt, pb;
|
||||
|
|
|
@ -353,7 +353,6 @@ e_icccm_get_mwm_hints(Window win, E_Border *b)
|
|||
if (mwmhints->decorations & MWM_DECOR_BORDER) b->client.border = 1;
|
||||
if (mwmhints->decorations & MWM_DECOR_RESIZEH) b->client.handles = 1;
|
||||
if (mwmhints->decorations & MWM_DECOR_TITLE) b->client.titlebar = 1;
|
||||
e_border_apply_border(b);
|
||||
}
|
||||
FREE(mwmhints);
|
||||
}
|
||||
|
|
21
src/view.c
21
src/view.c
|
@ -50,10 +50,13 @@ e_view_write_icon_xy_timeout(int val, void *data)
|
|||
E_View *v;
|
||||
Evas_List l;
|
||||
E_Icon *ic;
|
||||
double t_in;
|
||||
|
||||
D_ENTER;
|
||||
|
||||
v = data;
|
||||
/* FIXME: this is a problem if we have 1000's of icons */
|
||||
t_in = ecore_get_time();
|
||||
for (l = v->icons; l; l = l->next)
|
||||
{
|
||||
ic = l->data;
|
||||
|
@ -72,6 +75,14 @@ e_view_write_icon_xy_timeout(int val, void *data)
|
|||
"/pos/y", buf,
|
||||
ic->geom.y);
|
||||
}
|
||||
if ((ecore_get_time() - t_in) > 0.10)
|
||||
{
|
||||
char name[PATH_MAX];
|
||||
|
||||
sprintf(name, "icon_xy_record.%s", v->dir);
|
||||
ecore_add_event_timer(name, 0.01, e_view_write_icon_xy_timeout, 0, v);
|
||||
D_RETURN;
|
||||
}
|
||||
}
|
||||
|
||||
D_RETURN;
|
||||
|
@ -758,6 +769,7 @@ e_view_geometry_record(E_View *v)
|
|||
{
|
||||
int left, top;
|
||||
|
||||
D("Record geom for view\n");
|
||||
ecore_window_get_frame_size(v->win.base, &left, NULL,
|
||||
&top, NULL);
|
||||
efsd_set_metadata_int(e_fs_get_connection(),
|
||||
|
@ -841,6 +853,7 @@ e_configure(Ecore_Event * ev)
|
|||
D("wm generated %i %i, %ix%i\n", e->x, e->y, e->w, e->h);
|
||||
if ((e->x != v->location.x) || (e->y != v->location.y))
|
||||
{
|
||||
D("new spot!\n");
|
||||
v->location.x = e->x;
|
||||
v->location.y = e->y;
|
||||
e_view_queue_geometry_record(v);
|
||||
|
@ -1320,8 +1333,9 @@ e_view_handle_fs_restart(void *data)
|
|||
"/view/w", v->dir, EFSD_INT);
|
||||
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
|
||||
"/view/h", v->dir, EFSD_INT);
|
||||
v->getbg = efsd_get_metadata(e_fs_get_connection(), "/view/background", v->dir, EFSD_STRING);
|
||||
}
|
||||
v->getbg = efsd_get_metadata(e_fs_get_connection(),
|
||||
"/view/background", v->dir, EFSD_STRING);
|
||||
}
|
||||
{
|
||||
EfsdOptions *ops;
|
||||
|
||||
|
@ -1758,8 +1772,9 @@ e_view_set_dir(E_View *v, char *dir)
|
|||
"/view/w", v->dir, EFSD_INT);
|
||||
v->geom_get.h = efsd_get_metadata(e_fs_get_connection(),
|
||||
"/view/h", v->dir, EFSD_INT);
|
||||
v->getbg = efsd_get_metadata(e_fs_get_connection(),
|
||||
"/view/background", v->dir, EFSD_STRING);
|
||||
v->geom_get.busy = 1;
|
||||
v->getbg = efsd_get_metadata(e_fs_get_connection(), "/view/background", v->dir, EFSD_STRING);
|
||||
{
|
||||
EfsdOptions *ops;
|
||||
|
||||
|
|
Loading…
Reference in New Issue