Enlightenment CVS committal
Author : chaos
Project : e17
Module : proto
Dir : e17/proto/entropy/src
Modified Files:
entropy_core.c entropy_gui_event_handlers.c
Log Message:
* Quieter operation
* Check to make sure a layout shell is not already registered to receive an
event, on register. Prevents double-ups
* Saner operation of multi-file select in icon view
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/entropy_core.c,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -3 -r1.88 -r1.89
--- entropy_core.c 2 Sep 2006 10:00:16 -0000 1.88
+++ entropy_core.c 5 Sep 2006 06:27:39 -0000 1.89
@@ -932,6 +932,8 @@
/*Register a component to get events created by others in the same layout
container*/
void entropy_core_component_event_register(entropy_gui_component_instance*
comp, char* event) {
entropy_gui_component_instance* layout;
+ entropy_gui_component_instance* iter;
+ int found = 0;
if (!comp->layout_parent) {
@@ -946,8 +948,6 @@
/*First we have to see if this layout is currently registered with the
core..*/
Ecore_Hash* event_hash = ecore_hash_get(core_core->layout_gui_events,
layout);
- //printf(" * Registering a component...\n");
-
if (!event_hash) {
printf("Alert! - tried to register events for unreg layout
component, %p\n", layout);
} else {
@@ -955,20 +955,57 @@
if (!event_list) {
//printf("No events of this type(%p) yet registered for
this layout, making a new list..\n", event);
-
event_list = ecore_list_new();
ecore_hash_set(event_hash, event, event_list);
+ } else {
+ ecore_list_goto_first(event_list);
+ while ((iter = ecore_list_next(event_list))) {
+ if (iter == comp) {
+ found = 1;
+ }
+ }
+ }
+ if (!found) {
+ /*Now add this component to this list*/
+ ecore_list_append(event_list, comp);
+ //printf("Registered interest in '%s' for this gui
component\n", event);
}
+ }
+}
+
+void entropy_core_component_event_deregister(entropy_gui_component_instance*
comp, char* event)
+{
+ entropy_gui_component_instance* layout;
+ entropy_gui_component_instance* iter;
- /*Now add this component to this list*/
- ecore_list_append(event_list, comp);
+ if (!comp->layout_parent) {
+ /*This must be a layout (or the programmer has messed up,
+ * use this as the layout*/
+ layout = comp;
+ } else {
+ layout = comp->layout_parent;
+ }
+
+ /*First we have to see if this layout is currently registered with the
core..*/
+ Ecore_Hash* event_hash = ecore_hash_get(core_core->layout_gui_events,
layout);
+
+ if (!event_hash) {
+ printf("Alert! - tried to de-register events for unreg layout
component, %p\n", layout);
+ } else {
+ Ecore_List* event_list = ecore_hash_get(event_hash, event);
+
+ if (event_list) {
+ ecore_list_goto_first(event_list);
+ while ((iter = ecore_list_current(event_list))) {
+ if (iter == comp) {
+ ecore_list_remove(event_list);
+ } else {
+ ecore_list_next(event_list);
+ }
+ }
+ }
-
-
- //printf("Registered interest in '%s' for this gui
component\n", event);
-
-
}
}
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/entropy_gui_event_handlers.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- entropy_gui_event_handlers.c 17 Jul 2006 13:41:46 -0000 1.13
+++ entropy_gui_event_handlers.c 5 Sep 2006 06:27:39 -0000 1.14
@@ -344,7 +344,6 @@
ev->data = request;
/*HACK/FIXME - see what happens if we expire events - this should be on
request*/
- printf("************* Calling interceptor..\n");
entropy_notify_event_expire_requestor_layout(requestor);
res = entropy_plugin_filesystem_filelist_get(request);
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs