1. start work on dialog stuff
2. fix edge flip stuff 3. fix ghost windows stuff 4. spec SVN revision: 15925
This commit is contained in:
parent
f4f1ad13b4
commit
d2ea9aee5d
3
TODO
3
TODO
|
@ -22,9 +22,6 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
map/unmap event and something else... they still are around in x- just e
|
||||
hides them and never shows them again
|
||||
fullscreen. is this correct?
|
||||
* BUG: client windows list somehow doesn't unref its list of borders in the
|
||||
free callback set on it. why? is this callback never called? or is the
|
||||
data pointer on the menu object null for some reason?
|
||||
* BUG: if you have 2 zones and you fill up zone 2 (right) mostly and then run
|
||||
a big xev (xev -g 1280x1024) that wont fit it gets placed offscreen to the
|
||||
right of zone 2
|
||||
|
|
|
@ -30,7 +30,8 @@ default_cpufreq.edc \
|
|||
default_ibox.edc \
|
||||
default_start.edc \
|
||||
default_winlist.edc \
|
||||
default_transitions.edc
|
||||
default_transitions.edc \
|
||||
default_dialog.edc
|
||||
|
||||
default.edj: Makefile $(EXTRA_DIST)
|
||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
||||
|
|
|
@ -39,5 +39,6 @@ collections {
|
|||
#include "default_start.edc"
|
||||
#include "default_winlist.edc"
|
||||
#include "default_transitions.edc"
|
||||
#include "default_dialog.edc"
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,253 @@
|
|||
images {
|
||||
image: "e17_menu_bg.png" COMP;
|
||||
image: "e17_winlist_top.png" COMP;
|
||||
image: "e17_winlist_bottom.png" COMP;
|
||||
image: "e17_button2.png" COMP;
|
||||
image: "e17_button.png" COMP;
|
||||
}
|
||||
|
||||
group {
|
||||
name: "widgets/dialog/main";
|
||||
parts {
|
||||
part {
|
||||
name: "base";
|
||||
mouse_events: 0;
|
||||
type: RECT;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 1 0;
|
||||
to_y: "base2";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -2 -2;
|
||||
}
|
||||
color: 221 221 221 255;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "base2";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
max: 99999 48;
|
||||
align: 0.5 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 1 1;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -2 -2;
|
||||
}
|
||||
image {
|
||||
normal: "e17_menu_bg.png";
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "base3";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
image {
|
||||
normal: "e17_menu_bg_border.png";
|
||||
border: 1 1 1 1;
|
||||
middle: 0;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "icon_swallow";
|
||||
type: SWALLOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
align: 0.0 0.5;
|
||||
color: 0 0 0 0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 16 16;
|
||||
}
|
||||
rel2 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 16 -9;
|
||||
to_y: "buttons_swallow";
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "content_swallow";
|
||||
type: SWALLOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 0 0 0 0;
|
||||
rel1 {
|
||||
relative: 1.0 0.0;
|
||||
offset: 8 16;
|
||||
to_x: "icon_swallow";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 0.0;
|
||||
offset: -17 -9;
|
||||
to_y: "buttons_swallow";
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "top";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 1 1;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 0.0;
|
||||
offset: -2 16;
|
||||
to_y: "content_swallow";
|
||||
}
|
||||
image {
|
||||
normal: "e17_winlist_top.png";
|
||||
border: 0 0 0 19;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bottom";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 1 -3;
|
||||
to_y: "content_swallow";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -2 -2;
|
||||
}
|
||||
image {
|
||||
normal: "e17_winlist_bottom.png";
|
||||
border: 0 0 4 0;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "buttons_swallow";
|
||||
type: SWALLOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 0 0 0 0;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 16 -9;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -17 -9;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group {
|
||||
name: "widgets/dialog/button";
|
||||
parts {
|
||||
part {
|
||||
name: "button_image";
|
||||
type: IMAGE;
|
||||
mouse_events: 1;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
min: 64 32;
|
||||
image {
|
||||
normal: "e17_button.png";
|
||||
border: 8 8 8 8;
|
||||
}
|
||||
}
|
||||
description {
|
||||
state: "clicked" 0.0;
|
||||
min: 64 32;
|
||||
image {
|
||||
normal: "e17_button2.png";
|
||||
border: 8 8 8 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "button_text";
|
||||
type: TEXT;
|
||||
effect: SHADOW;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 6 6;
|
||||
to: "button_image";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -7 -7;
|
||||
to: "button_image";
|
||||
}
|
||||
color: 0 0 0 255;
|
||||
color3: 255 255 255 128;
|
||||
text {
|
||||
text: "OK";
|
||||
font: "Edje Vera";
|
||||
size: 10;
|
||||
min: 0 0;
|
||||
align: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program {
|
||||
name: "button_click";
|
||||
signal: "mouse,down,1";
|
||||
source: "button_image";
|
||||
action: STATE_SET "clicked" 0.0;
|
||||
target: "button_image";
|
||||
}
|
||||
program {
|
||||
name: "button_unclick";
|
||||
signal: "mouse,up,1";
|
||||
source: "button_image";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "button_image";
|
||||
}
|
||||
program {
|
||||
name: "button_unclick2";
|
||||
signal: "mouse,clicked";
|
||||
source: "button_image";
|
||||
action: SIGNAL_EMIT "click" "";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
Summary: The Enlightenment window manager
|
||||
Name: enlightenment
|
||||
Version: 0.17.0_pre10
|
||||
Version: 0.16.999.011
|
||||
Release: NOT_RELEASE_1.%(date '+%Y%m%d')
|
||||
License: BSD
|
||||
Group: User Interface/Desktops
|
||||
|
@ -52,16 +52,17 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
|||
%defattr(-, root, root)
|
||||
%doc AUTHORS COPYING COPYING-PLAIN README
|
||||
%{_bindir}/*
|
||||
%{_libdir}/libe.so.*
|
||||
%{_libdir}/%{name}
|
||||
%{_datadir}/%{name}
|
||||
%{_datadir}/locale/*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root)
|
||||
%{_includedir}/enlightenment/*.h
|
||||
%{_includedir}/E.h
|
||||
%{_includedir}/E_Lib.h
|
||||
%{_libdir}/libe.a
|
||||
%{_libdir}/libe.la
|
||||
%{_libdir}/libe.so.0.0.0
|
||||
|
||||
%{_libdir}/libe.so
|
||||
|
||||
%changelog
|
||||
|
|
|
@ -67,7 +67,8 @@ e_grabinput.h \
|
|||
e_bg.h \
|
||||
e_remember.h \
|
||||
e_win.h \
|
||||
e_pan.h
|
||||
e_pan.h \
|
||||
e_dialog.h
|
||||
|
||||
enlightenment_SOURCES = \
|
||||
e_main.c \
|
||||
|
@ -124,6 +125,7 @@ e_bg.c \
|
|||
e_remember.c \
|
||||
e_win.c \
|
||||
e_pan.c \
|
||||
e_dialog.c \
|
||||
$(ENLIGHTENMENTHEADERS)
|
||||
|
||||
enlightenment_LDFLAGS = -export-dynamic @e_libs@ @x_libs@ @dlopen_libs@
|
||||
|
|
|
@ -490,7 +490,7 @@ e_border_zone_set(E_Border *bd, E_Zone *zone)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Zone_Set));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_zone_set_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_zone_set_event");
|
||||
ev->zone = zone;
|
||||
e_object_ref(E_OBJECT(zone));
|
||||
ecore_event_add(E_EVENT_BORDER_ZONE_SET, ev, _e_border_event_border_zone_set_free, NULL);
|
||||
|
@ -516,7 +516,7 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Desk_Set));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_desk_set_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_desk_set_event");
|
||||
ev->desk = desk;
|
||||
e_object_ref(E_OBJECT(desk));
|
||||
ecore_event_add(E_EVENT_BORDER_DESK_SET, ev, _e_border_event_border_desk_set_free, NULL);
|
||||
|
@ -545,7 +545,7 @@ e_border_show(E_Border *bd)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Show));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_show_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_show_event");
|
||||
ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@ e_border_hide(E_Border *bd, int manage)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Hide));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event");
|
||||
ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -647,7 +647,7 @@ e_border_move(E_Border *bd, int x, int y)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Move));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
|
||||
ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -693,7 +693,7 @@ e_border_resize(E_Border *bd, int w, int h)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -748,13 +748,13 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
|
|||
mev = calloc(1, sizeof(E_Event_Border_Move));
|
||||
mev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
|
||||
ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, NULL);
|
||||
|
||||
rev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
rev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, rev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -772,7 +772,7 @@ e_border_raise(E_Border *bd)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Raise));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
|
||||
ev->above = NULL;
|
||||
ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL);
|
||||
}
|
||||
|
@ -792,7 +792,7 @@ e_border_lower(E_Border *bd)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Lower));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
|
||||
ev->below = NULL;
|
||||
ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL);
|
||||
}
|
||||
|
@ -812,10 +812,10 @@ e_border_stack_above(E_Border *bd, E_Border *above)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Raise));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
|
||||
ev->above = above;
|
||||
e_object_ref(E_OBJECT(above));
|
||||
e_object_breadcrumb_add(E_OBJECT(above), "border_raise_event.above");
|
||||
// e_object_breadcrumb_add(E_OBJECT(above), "border_raise_event.above");
|
||||
ecore_event_add(E_EVENT_BORDER_RAISE, ev, _e_border_event_border_raise_free, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -833,10 +833,10 @@ e_border_stack_below(E_Border *bd, E_Border *below)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Lower));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
|
||||
ev->below = below;
|
||||
e_object_ref(E_OBJECT(below));
|
||||
e_object_breadcrumb_add(E_OBJECT(below), "border_lower_event.below");
|
||||
// e_object_breadcrumb_add(E_OBJECT(below), "border_lower_event.below");
|
||||
ecore_event_add(E_EVENT_BORDER_LOWER, ev, _e_border_event_border_lower_free, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -1012,7 +1012,7 @@ e_border_shade(E_Border *bd, E_Direction dir)
|
|||
/* The resize is added in the animator when animation complete */
|
||||
/* For non-animated, we add it immediately with the new size */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -1101,7 +1101,7 @@ e_border_unshade(E_Border *bd, E_Direction dir)
|
|||
/* The resize is added in the animator when animation complete */
|
||||
/* For non-animated, we add it immediately with the new size */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -1384,7 +1384,7 @@ e_border_iconify(E_Border *bd)
|
|||
ev = E_NEW(E_Event_Border_Iconify, 1);
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
|
||||
ecore_event_add(E_EVENT_BORDER_ICONIFY, ev, _e_border_event_border_iconify_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -1413,7 +1413,7 @@ e_border_uniconify(E_Border *bd)
|
|||
ev = E_NEW(E_Event_Border_Uniconify, 1);
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
|
||||
ecore_event_add(E_EVENT_BORDER_UNICONIFY, ev, _e_border_event_border_uniconify_free, NULL);
|
||||
|
||||
}
|
||||
|
@ -1433,7 +1433,7 @@ e_border_stick(E_Border *bd)
|
|||
ev = E_NEW(E_Event_Border_Stick, 1);
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
|
||||
ecore_event_add(E_EVENT_BORDER_STICK, ev, _e_border_event_border_stick_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -1454,7 +1454,7 @@ e_border_unstick(E_Border *bd)
|
|||
ev = E_NEW(E_Event_Border_Unstick, 1);
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_unstick_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_unstick_event");
|
||||
ecore_event_add(E_EVENT_BORDER_UNSTICK, ev, _e_border_event_border_unstick_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -1614,13 +1614,11 @@ e_border_act_move_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev)
|
|||
void
|
||||
e_border_act_move_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Up *ev)
|
||||
{
|
||||
if (bd->moving)
|
||||
{
|
||||
e_zone_flip_win_restore();
|
||||
bd->moving = 0;
|
||||
_e_border_move_end(bd);
|
||||
e_zone_flip_coords_handle(bd->zone, -1, -1);
|
||||
}
|
||||
if (!bd->moving) return;
|
||||
bd->moving = 0;
|
||||
e_zone_flip_win_restore();
|
||||
_e_border_move_end(bd);
|
||||
e_zone_flip_coords_handle(bd->zone, -1, -1);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1877,11 +1875,7 @@ e_border_ping(E_Border *bd)
|
|||
void
|
||||
e_border_move_cancel(void)
|
||||
{
|
||||
if (move)
|
||||
{
|
||||
move->moving = 0;
|
||||
_e_border_move_end(move);
|
||||
}
|
||||
if (move) _e_border_move_end(move);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1933,11 +1927,13 @@ _e_border_free(E_Border *bd)
|
|||
|
||||
IF_FREE(bd->shape_rects);
|
||||
bd->shape_rects_num = 0;
|
||||
/*
|
||||
if (bd->dangling_ref_check)
|
||||
{
|
||||
ecore_timer_del(bd->dangling_ref_check);
|
||||
bd->dangling_ref_check = NULL;
|
||||
}
|
||||
*/
|
||||
if (bd->kill_timer)
|
||||
{
|
||||
ecore_timer_del(bd->kill_timer);
|
||||
|
@ -2017,6 +2013,7 @@ _e_border_free(E_Border *bd)
|
|||
free(bd);
|
||||
}
|
||||
|
||||
/*
|
||||
static int
|
||||
_e_border_del_dangling_ref_check(void *data)
|
||||
{
|
||||
|
@ -2028,18 +2025,21 @@ _e_border_del_dangling_ref_check(void *data)
|
|||
printf("%p, %i, \"%s\" [\"%s\" \"%s\"]\n",
|
||||
bd, e_object_ref_get(E_OBJECT(bd)), bd->client.icccm.title,
|
||||
bd->client.icccm.name, bd->client.icccm.class);
|
||||
e_object_breadcrumb_debug(E_OBJECT(bd));
|
||||
// e_object_breadcrumb_debug(E_OBJECT(bd));
|
||||
printf("---\n");
|
||||
return 1;
|
||||
}
|
||||
*/
|
||||
|
||||
static void
|
||||
_e_border_del(E_Border *bd)
|
||||
{
|
||||
E_Event_Border_Remove *ev;
|
||||
|
||||
|
||||
/*
|
||||
if (!bd->dangling_ref_check)
|
||||
bd->dangling_ref_check = ecore_timer_add(1.0, _e_border_del_dangling_ref_check, bd);
|
||||
*/
|
||||
if (!bd->already_unparented)
|
||||
{
|
||||
ecore_x_window_reparent(bd->client.win,
|
||||
|
@ -2055,7 +2055,7 @@ _e_border_del(E_Border *bd)
|
|||
/* FIXME Don't ref this during shutdown. And the event is pointless
|
||||
* during shutdown.. */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_remove_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_remove_event");
|
||||
ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL);
|
||||
}
|
||||
|
||||
|
@ -3995,7 +3995,7 @@ _e_border_eval(E_Border *bd)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Icon_Change));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_icon_change_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_icon_change_event");
|
||||
ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev,
|
||||
_e_border_event_border_icon_change_free, NULL);
|
||||
}
|
||||
|
@ -4467,7 +4467,7 @@ _e_border_eval(E_Border *bd)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Add));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_add_event");
|
||||
// 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);
|
||||
|
||||
/* Recreate state */
|
||||
|
@ -5081,7 +5081,7 @@ _e_border_shade_animator(void *data)
|
|||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
ev->border = bd;
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
@ -6187,7 +6187,7 @@ _e_border_event_border_resize_free(void *data, void *ev)
|
|||
E_Event_Border_Resize *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_resize_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_resize_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6198,7 +6198,7 @@ _e_border_event_border_move_free(void *data, void *ev)
|
|||
E_Event_Border_Move *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_move_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_move_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6209,7 +6209,7 @@ _e_border_event_border_add_free(void *data, void *ev)
|
|||
E_Event_Border_Add *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_add_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_add_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6220,7 +6220,7 @@ _e_border_event_border_remove_free(void *data, void *ev)
|
|||
E_Event_Border_Remove *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_remove_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_remove_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6231,7 +6231,7 @@ _e_border_event_border_show_free(void *data, void *ev)
|
|||
E_Event_Border_Show *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_show_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_show_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6242,7 +6242,7 @@ _e_border_event_border_hide_free(void *data, void *ev)
|
|||
E_Event_Border_Hide *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_hide_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_hide_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6253,7 +6253,7 @@ _e_border_event_border_iconify_free(void *data, void *ev)
|
|||
E_Event_Border_Iconify *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_iconify_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_iconify_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6264,7 +6264,7 @@ _e_border_event_border_uniconify_free(void *data, void *ev)
|
|||
E_Event_Border_Uniconify *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_uniconify_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_uniconify_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6275,7 +6275,7 @@ _e_border_event_border_stick_free(void *data, void *ev)
|
|||
E_Event_Border_Stick *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_stick_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_stick_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6286,7 +6286,7 @@ _e_border_event_border_unstick_free(void *data, void *ev)
|
|||
E_Event_Border_Unstick *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_unstick_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_unstick_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
@ -6297,7 +6297,7 @@ _e_border_event_border_zone_set_free(void *data, void *ev)
|
|||
E_Event_Border_Zone_Set *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_zone_set_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_zone_set_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
e_object_unref(E_OBJECT(e->zone));
|
||||
free(e);
|
||||
|
@ -6309,7 +6309,7 @@ _e_border_event_border_desk_set_free(void *data, void *ev)
|
|||
E_Event_Border_Desk_Set *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_desk_set_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_desk_set_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
e_object_unref(E_OBJECT(e->desk));
|
||||
free(e);
|
||||
|
@ -6321,11 +6321,11 @@ _e_border_event_border_raise_free(void *data, void *ev)
|
|||
E_Event_Border_Raise *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_raise_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_raise_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
if (e->above)
|
||||
{
|
||||
e_object_breadcrumb_del(E_OBJECT(e->above), "border_raise_event.above");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->above), "border_raise_event.above");
|
||||
e_object_unref(E_OBJECT(e->above));
|
||||
}
|
||||
free(e);
|
||||
|
@ -6337,11 +6337,11 @@ _e_border_event_border_lower_free(void *data, void *ev)
|
|||
E_Event_Border_Lower *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_lower_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_lower_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
if (e->below)
|
||||
{
|
||||
e_object_breadcrumb_del(E_OBJECT(e->below), "border_lower_event.below");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->below), "border_lower_event.below");
|
||||
e_object_unref(E_OBJECT(e->below));
|
||||
}
|
||||
free(e);
|
||||
|
@ -6353,7 +6353,7 @@ _e_border_event_border_icon_change_free(void *data, void *ev)
|
|||
E_Event_Border_Icon_Change *e;
|
||||
|
||||
e = ev;
|
||||
e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
|
||||
// e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
free(e);
|
||||
}
|
||||
|
|
|
@ -371,7 +371,7 @@ struct _E_Border
|
|||
Ecore_X_Rectangle *shape_rects;
|
||||
E_Remember *remember;
|
||||
|
||||
Ecore_Timer *dangling_ref_check;
|
||||
// Ecore_Timer *dangling_ref_check;
|
||||
};
|
||||
|
||||
struct _E_Border_Pending_Move_Resize
|
||||
|
|
|
@ -0,0 +1,214 @@
|
|||
/*
|
||||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#include "e.h"
|
||||
|
||||
typedef struct _E_Dialog_Button E_Dialog_Button;
|
||||
|
||||
struct _E_Dialog_Button
|
||||
{
|
||||
E_Dialog *dialog;
|
||||
Evas_Object *obj;
|
||||
char *label;
|
||||
char *icon;
|
||||
void (*func) (void *data, E_Dialog *dia);
|
||||
void *data;
|
||||
};
|
||||
|
||||
/* local subsystem functions */
|
||||
static void _e_dialog_free(E_Dialog *dia);
|
||||
static void _e_dialog_cb_button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
|
||||
static void _e_dialog_cb_delete(E_Win *win);
|
||||
|
||||
/* local subsystem globals */
|
||||
|
||||
/* externally accessible functions */
|
||||
|
||||
E_Dialog *
|
||||
e_dialog_new(E_Container *con)
|
||||
{
|
||||
E_Dialog *dia;
|
||||
E_Manager *man;
|
||||
Evas_Object *o;
|
||||
|
||||
if (!con)
|
||||
{
|
||||
man = e_manager_current_get();
|
||||
if (!man) return NULL;
|
||||
con = e_container_current_get(man);
|
||||
if (!con) con = e_manager_container_number_get(man, 0);
|
||||
if (!con) return NULL;
|
||||
}
|
||||
dia = E_OBJECT_ALLOC(E_Dialog, E_DIALOG_TYPE, _e_dialog_free);
|
||||
if (!dia) return NULL;
|
||||
dia->win = e_win_new(con);
|
||||
if (!dia->win)
|
||||
{
|
||||
free(dia);
|
||||
return NULL;
|
||||
}
|
||||
dia->win->data = dia;
|
||||
e_win_name_class_set(dia->win, "E", "_dialog");
|
||||
o = edje_object_add(e_win_evas_get(dia->win));
|
||||
dia->bg_object = o;
|
||||
e_theme_edje_object_set(o, "base/theme/dialog",
|
||||
"widgets/dialog/main");
|
||||
evas_object_move(o, 0, 0);
|
||||
evas_object_show(o);
|
||||
|
||||
o = evas_object_textblock_add(e_win_evas_get(dia->win));
|
||||
dia->text_object = o;
|
||||
edje_object_part_swallow(dia->bg_object, "content_swallow", o);
|
||||
evas_object_show(o);
|
||||
{
|
||||
char format[1024];
|
||||
char *fname;
|
||||
int fsize;
|
||||
|
||||
fname = (char *)e_font_default_string_get("default", &fsize);
|
||||
snprintf(format, sizeof(format),
|
||||
"font='%s' size=%i wrap=word",
|
||||
fname, fsize);
|
||||
evas_object_textblock_format_insert(o, format);
|
||||
evas_object_textblock_format_insert(o, "color=#000");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_text_insert(o, "Here is some text");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_text_insert(o, "Here is some more text");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_text_insert(o, "And even more text on this line to make it really long for testing");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_text_insert(o, "Short");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_text_insert(o, "Aaardvaaarks On!");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
evas_object_textblock_format_insert(o, "\n");
|
||||
}
|
||||
|
||||
o = e_box_add(e_win_evas_get(dia->win));
|
||||
dia->box_object = o;
|
||||
e_box_orientation_set(o, 1);
|
||||
e_box_homogenous_set(o, 1);
|
||||
e_box_align_set(o, 0.5, 0.5);
|
||||
edje_object_part_swallow(dia->bg_object, "buttons_swallow", o);
|
||||
evas_object_show(o);
|
||||
|
||||
return dia;
|
||||
}
|
||||
|
||||
void
|
||||
e_dialog_button_add(E_Dialog *dia, char *label, char *icon, void (*func) (void *data, E_Dialog *dia), void *data)
|
||||
{
|
||||
E_Dialog_Button *db;
|
||||
Evas_Coord mw, mh;
|
||||
|
||||
db = E_NEW(E_Dialog_Button, 1);
|
||||
db->dialog = dia;
|
||||
if (label) db->label = strdup(label);
|
||||
if (icon) db->icon = strdup(icon);
|
||||
db->func = func;
|
||||
db->data = data;
|
||||
db->obj = edje_object_add(e_win_evas_get(dia->win));
|
||||
e_theme_edje_object_set(db->obj, "base/theme/dialog",
|
||||
"widgets/dialog/button");
|
||||
edje_object_signal_callback_add(db->obj, "click", "",
|
||||
_e_dialog_cb_button_clicked, db);
|
||||
edje_object_part_text_set(db->obj, "button_text", db->label);
|
||||
edje_object_size_min_calc(db->obj, &mw, &mh);
|
||||
e_box_pack_end(dia->box_object, db->obj);
|
||||
e_box_pack_options_set(db->obj,
|
||||
1, 1, /* fill */
|
||||
0, 1, /* expand */
|
||||
0.5, 0.5, /* align */
|
||||
mw, mh, /* min */
|
||||
9999, mh /* max */
|
||||
);
|
||||
evas_object_show(db->obj);
|
||||
|
||||
dia->buttons = evas_list_append(dia->buttons, db);
|
||||
}
|
||||
|
||||
void
|
||||
e_dialog_title_set(E_Dialog *dia, char *title)
|
||||
{
|
||||
e_win_title_set(dia->win, title);
|
||||
}
|
||||
|
||||
void
|
||||
e_dialog_text_set(E_Dialog *dia, char *text)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
e_dialog_icon_set(E_Dialog *dia, char *icon)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
e_dialog_show(E_Dialog *dia)
|
||||
{
|
||||
Evas_Coord mw, mh;
|
||||
Evas_Object *o;
|
||||
|
||||
o = dia->text_object;
|
||||
// evas_object_textblock_format_size_get(o, &mw, &mh);
|
||||
evas_object_textblock_native_size_get(o, &mw, &mh);
|
||||
edje_extern_object_min_size_set(o, mw + 2, mh + 2);
|
||||
edje_object_part_swallow(dia->bg_object, "content_swallow", o);
|
||||
|
||||
o = dia->box_object;
|
||||
e_box_min_size_get(o, &mw, &mh);
|
||||
edje_extern_object_min_size_set(o, mw, mh);
|
||||
edje_object_part_swallow(dia->bg_object, "buttons_swallow", o);
|
||||
|
||||
edje_object_size_min_calc(dia->bg_object, &mw, &mh);
|
||||
evas_object_resize(dia->bg_object, mw, mh);
|
||||
e_win_resize(dia->win, mw, mh);
|
||||
e_win_size_min_set(dia->win, mw, mh);
|
||||
e_win_size_max_set(dia->win, mw, mh);
|
||||
e_win_show(dia->win);
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static void
|
||||
_e_dialog_free(E_Dialog *dia)
|
||||
{
|
||||
while (dia->buttons)
|
||||
{
|
||||
E_Dialog_Button *db;
|
||||
|
||||
db = dia->buttons->data;
|
||||
dia->buttons = evas_list_remove_list(dia->buttons, dia->buttons);
|
||||
IF_FREE(db->label);
|
||||
IF_FREE(db->icon);
|
||||
evas_object_del(db->obj);
|
||||
free(db);
|
||||
}
|
||||
if (dia->text_object) evas_object_del(dia->text_object);
|
||||
if (dia->icon_object) evas_object_del(dia->icon_object);
|
||||
if (dia->box_object) evas_object_del(dia->box_object);
|
||||
if (dia->bg_object) evas_object_del(dia->bg_object);
|
||||
e_object_del(E_OBJECT(dia->win));
|
||||
free(dia);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_dialog_cb_button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
E_Dialog_Button *db;
|
||||
|
||||
db = data;
|
||||
if (db->func)
|
||||
db->func(db->data, db->dialog);
|
||||
else
|
||||
e_object_del(E_OBJECT(db->dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
_e_dialog_cb_delete(E_Win *win)
|
||||
{
|
||||
E_Dialog *dia;
|
||||
|
||||
dia = win->data;
|
||||
e_object_del(E_OBJECT(dia));
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#ifdef E_TYPEDEFS
|
||||
|
||||
typedef struct _E_Dialog E_Dialog;
|
||||
|
||||
#else
|
||||
#ifndef E_DIALOG_H
|
||||
#define E_DIALOG_H
|
||||
|
||||
#define E_DIALOG_TYPE 0xE0b01012
|
||||
|
||||
struct _E_Dialog
|
||||
{
|
||||
E_Object e_obj_inherit;
|
||||
|
||||
E_Win *win;
|
||||
Evas_Object *bg_object;
|
||||
Evas_Object *box_object;
|
||||
Evas_Object *text_object;
|
||||
Evas_Object *icon_object;
|
||||
Evas_List *buttons;
|
||||
void *data;
|
||||
};
|
||||
|
||||
EAPI E_Dialog *e_dialog_new (E_Container *con);
|
||||
EAPI void e_dialog_button_add (E_Dialog *dia, char *label, char *icon, void (*func) (void *data, E_Dialog *dia), void *data);
|
||||
EAPI void e_dialog_title_set (E_Dialog *dia, char *title);
|
||||
EAPI void e_dialog_text_set (E_Dialog *dia, char *text);
|
||||
EAPI void e_dialog_icon_set (E_Dialog *dia, char *icon);
|
||||
EAPI void e_dialog_show (E_Dialog *dia);
|
||||
|
||||
#endif
|
||||
#endif
|
|
@ -55,3 +55,4 @@
|
|||
#include "e_remember.h"
|
||||
#include "e_win.h"
|
||||
#include "e_pan.h"
|
||||
#include "e_dialog.h"
|
||||
|
|
|
@ -289,14 +289,6 @@ _e_int_menus_main_del_hook(void *obj)
|
|||
e_object_del(E_OBJECT(dat->lost_clients));
|
||||
free(dat);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("%%$%%@%%#^#^#$^#$\n"
|
||||
"%%$%%@%%#^#^#$^#$\n"
|
||||
" main menu object data is NULL!\n"
|
||||
"%%$%%@%%#^#^#$^#$\n"
|
||||
"%%$%%@%%#^#^#$^#$\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -567,7 +559,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
|
|||
e_menu_item_label_set(mi, _("No name!!"));
|
||||
/* ref the border as we implicitly unref it in the callback */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "clients_menu");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "clients_menu");
|
||||
e_menu_item_callback_set(mi, _e_int_menus_clients_item_cb, bd);
|
||||
if (!bd->iconic) e_menu_item_toggle_set(mi, 1);
|
||||
a = e_app_window_name_class_title_role_find(bd->client.icccm.name,
|
||||
|
@ -585,6 +577,7 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
|
|||
e_menu_item_icon_edje_set(mi, s, "windows");
|
||||
IF_FREE(s);
|
||||
e_menu_item_callback_set(mi, _e_int_menus_clients_cleanup_cb, zone);
|
||||
|
||||
e_object_free_attach_func_set(E_OBJECT(m), _e_int_menus_clients_free_hook);
|
||||
e_object_data_set(E_OBJECT(m), borders);
|
||||
}
|
||||
|
@ -597,21 +590,13 @@ _e_int_menus_clients_free_hook(void *obj)
|
|||
|
||||
m = obj;
|
||||
borders = e_object_data_get(E_OBJECT(m));
|
||||
if (borders == NULL)
|
||||
{
|
||||
printf("########################################################\n");
|
||||
printf("########################################################\n");
|
||||
printf("clients menu free cb called and object data is NULL!\n");
|
||||
printf("########################################################\n");
|
||||
printf("########################################################\n");
|
||||
}
|
||||
while (borders)
|
||||
{
|
||||
E_Border *bd;
|
||||
|
||||
bd = borders->data;
|
||||
borders = evas_list_remove_list(borders, borders);
|
||||
e_object_breadcrumb_del(E_OBJECT(bd), "clients_menu");
|
||||
// e_object_breadcrumb_del(E_OBJECT(bd), "clients_menu");
|
||||
e_object_unref(E_OBJECT(bd));
|
||||
}
|
||||
}
|
||||
|
@ -831,7 +816,7 @@ _e_int_menus_lost_clients_pre_cb(void *data, E_Menu *m)
|
|||
e_menu_item_label_set(mi, _("No name!!"));
|
||||
/* ref the border as we implicitly unref it in the callback */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
|
||||
// e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
|
||||
e_menu_item_callback_set(mi, _e_int_menus_lost_clients_item_cb, bd);
|
||||
a = e_app_window_name_class_title_role_find(bd->client.icccm.name,
|
||||
bd->client.icccm.class,
|
||||
|
@ -857,7 +842,7 @@ _e_int_menus_lost_clients_free_hook(void *obj)
|
|||
|
||||
bd = borders->data;
|
||||
borders = evas_list_remove_list(borders, borders);
|
||||
e_object_breadcrumb_del(E_OBJECT(bd), "lost_clients_menu");
|
||||
// e_object_breadcrumb_del(E_OBJECT(bd), "lost_clients_menu");
|
||||
e_object_unref(E_OBJECT(bd));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -338,6 +338,24 @@ e_manager_lower(E_Manager *man)
|
|||
ecore_x_window_lower(man->win);
|
||||
}
|
||||
|
||||
E_Manager *
|
||||
e_manager_current_get(void)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Manager *man;
|
||||
int x, y;
|
||||
|
||||
if (!managers) return NULL;
|
||||
for (l = managers; l; l = l->next)
|
||||
{
|
||||
man = l->data;
|
||||
ecore_x_pointer_xy_get(man->win, &x, &y);
|
||||
if (E_INSIDE(x, y, man->x, man->y, man->w, man->h))
|
||||
return man;
|
||||
}
|
||||
return managers->data;
|
||||
}
|
||||
|
||||
E_Container *
|
||||
e_manager_container_number_get(E_Manager *man, int num)
|
||||
{
|
||||
|
|
|
@ -37,8 +37,8 @@ EAPI void e_manager_resize(E_Manager *man, int w, int h);
|
|||
EAPI void e_manager_move_resize(E_Manager *man, int x, int y, int w, int h);
|
||||
EAPI void e_manager_raise(E_Manager *man);
|
||||
EAPI void e_manager_lower(E_Manager *man);
|
||||
EAPI E_Manager *e_manager_current_get(void);
|
||||
|
||||
EAPI E_Container *e_manager_container_current_get(E_Manager *man);
|
||||
EAPI E_Container *e_manager_container_number_get(E_Manager *man, int num);
|
||||
|
||||
EAPI void e_managers_keys_grab(void);
|
||||
|
|
|
@ -80,11 +80,13 @@ void
|
|||
e_object_free(E_Object *obj)
|
||||
{
|
||||
E_OBJECT_CHECK(obj);
|
||||
/*
|
||||
if (obj->crumbs)
|
||||
{
|
||||
printf("EEEK obj type %x has crumbs still! ->\n", obj->type);
|
||||
e_object_breadcrumb_debug(obj);
|
||||
}
|
||||
*/
|
||||
if (obj->free_att_func) obj->free_att_func(obj);
|
||||
obj->magic = E_OBJECT_MAGIC_FREED;
|
||||
obj->cleanup_func(obj);
|
||||
|
@ -257,6 +259,7 @@ e_object_del_attach_func_set(E_Object *obj, void (*func) (void *obj))
|
|||
obj->del_att_func = func;
|
||||
}
|
||||
|
||||
/*
|
||||
void
|
||||
e_object_breadcrumb_add(E_Object *obj, char *crumb)
|
||||
{
|
||||
|
@ -290,6 +293,7 @@ e_object_breadcrumb_debug(E_Object *obj)
|
|||
for (l = obj->crumbs; l; l = l->next)
|
||||
printf("CRUMB: %s\n", l->data);
|
||||
}
|
||||
*/
|
||||
|
||||
#ifdef OBJECT_PARANOIA_CHECK
|
||||
/* local subsystem functions */
|
||||
|
|
|
@ -70,7 +70,7 @@ struct _E_Object
|
|||
void (*del_att_func) (void *obj);
|
||||
void *data;
|
||||
unsigned char deleted : 1;
|
||||
Evas_List *crumbs;
|
||||
// Evas_List *crumbs;
|
||||
};
|
||||
|
||||
EAPI void *e_object_alloc (int size, int type, E_Object_Cleanup_Func cleanup_func);
|
||||
|
@ -88,9 +88,11 @@ EAPI void *e_object_data_get (E_Object *obj);
|
|||
EAPI void e_object_free_attach_func_set(E_Object *obj, void (*func) (void *obj));
|
||||
EAPI void e_object_del_attach_func_set (E_Object *obj, void (*func) (void *obj));
|
||||
|
||||
/*
|
||||
EAPI void e_object_breadcrumb_add (E_Object *obj, char *crumb);
|
||||
EAPI void e_object_breadcrumb_del (E_Object *obj, char *crumb);
|
||||
EAPI void e_object_breadcrumb_debug (E_Object *obj);
|
||||
*/
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -282,6 +282,29 @@ _e_test_internal(E_Container *con)
|
|||
}
|
||||
}
|
||||
#elif 0
|
||||
static void
|
||||
_e_test_dialog_del(void *obj)
|
||||
{
|
||||
E_Dialog *dia;
|
||||
|
||||
dia = obj;
|
||||
printf("dialog delete hook!\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_e_test_internal(E_Container *con)
|
||||
{
|
||||
E_Dialog *dia;
|
||||
|
||||
dia = e_dialog_new(con);
|
||||
e_object_del_attach_func_set(E_OBJECT(dia), _e_test_dialog_del);
|
||||
e_dialog_title_set(dia, "A Test Dialog");
|
||||
e_dialog_button_add(dia, "OK", NULL, NULL, NULL);
|
||||
e_dialog_button_add(dia, "Apply", NULL, NULL, NULL);
|
||||
e_dialog_button_add(dia, "Cancel", NULL, NULL, NULL);
|
||||
e_dialog_show(dia);
|
||||
}
|
||||
#elif 0
|
||||
#else
|
||||
static void
|
||||
_e_test_internal(E_Container *con)
|
||||
|
|
|
@ -807,7 +807,6 @@ _e_zone_cb_timer(void *data)
|
|||
E_Event_Pointer_Warp *ev;
|
||||
int x, y;
|
||||
|
||||
printf("_e_zone_cb_timer()\n");
|
||||
ev = E_NEW(E_Event_Pointer_Warp, 1);
|
||||
if (!ev) return 0;
|
||||
|
||||
|
@ -834,14 +833,11 @@ _e_zone_cb_timer(void *data)
|
|||
}
|
||||
break;
|
||||
case E_DIRECTION_RIGHT:
|
||||
printf("clip right...\n");
|
||||
if (E_ZONE_FLIP_RIGHT(zone))
|
||||
{
|
||||
printf("ummm...\n");
|
||||
current = e_desk_at_xy_get(zone, zone->desk_x_current + 1, zone->desk_y_current);
|
||||
if (current)
|
||||
{
|
||||
printf("show new desk\n");
|
||||
e_desk_show(current);
|
||||
ecore_x_pointer_warp(zone->container->win, 2, y);
|
||||
ev->curr.y = y;
|
||||
|
|
|
@ -606,7 +606,7 @@ _pager_window_new(Pager_Desk *pd, E_Border *border)
|
|||
|
||||
pw->border = border;
|
||||
e_object_ref(E_OBJECT(border));
|
||||
e_object_breadcrumb_add(E_OBJECT(border), "pager_module");
|
||||
// e_object_breadcrumb_add(E_OBJECT(border), "pager_module");
|
||||
|
||||
visible = !border->iconic;
|
||||
pw->desk = pd;
|
||||
|
@ -635,7 +635,7 @@ _pager_window_free(Pager_Win *pw)
|
|||
{
|
||||
if (pw->window_object) evas_object_del(pw->window_object);
|
||||
if (pw->icon_object) evas_object_del(pw->icon_object);
|
||||
e_object_breadcrumb_del(E_OBJECT(pw->border), "pager_module");
|
||||
// e_object_breadcrumb_del(E_OBJECT(pw->border), "pager_module");
|
||||
e_object_unref(E_OBJECT(pw->border));
|
||||
free(pw);
|
||||
}
|
||||
|
|
|
@ -368,5 +368,6 @@ _start_menu_cb_post_deactivate(void *data, E_Menu *m)
|
|||
face = data;
|
||||
if (!face->main_menu) return;
|
||||
edje_object_signal_emit(face->button_object, "passive", "");
|
||||
e_object_del(E_OBJECT(face->main_menu));
|
||||
face->main_menu = NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue