Enlightenment CVS committal
Author : sebastid
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_border.h e_border.c e_hints.h e_hints.c
Log Message:
Support internal state hints.
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -3 -r1.102 -r1.103
--- e_border.h 22 Aug 2005 04:16:25 -0000 1.102
+++ e_border.h 30 Aug 2005 01:15:25 -0000 1.103
@@ -259,6 +259,18 @@
unsigned char state : 1;
} update;
} netwm;
+
+ /* Extra e stuff */
+ struct {
+ struct {
+ unsigned char centered : 1;
+ } state;
+
+ struct {
+ unsigned char state : 1;
+ } fetch;
+ } e;
+
Ecore_X_Window_Attributes initial_attributes;
} client;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.372
retrieving revision 1.373
diff -u -3 -r1.372 -r1.373
--- e_border.c 29 Aug 2005 23:43:58 -0000 1.372
+++ e_border.c 30 Aug 2005 01:15:25 -0000 1.373
@@ -401,6 +401,14 @@
bd->client.netwm.fetch.state = 1;
}
}
+ /* loop to check for own atoms */
+ for (i = 0; i < at_num; i++)
+ {
+ if (atoms[i] == E_ATOM_WINDOW_STATE)
+ {
+ bd->client.e.fetch.state = 1;
+ }
+ }
free(atoms);
}
}
@@ -3997,6 +4005,11 @@
e_hints_window_state_get(bd);
bd->client.netwm.fetch.state = 0;
}
+ if (bd->client.e.fetch.state)
+ {
+ e_hints_window_e_state_get(bd);
+ bd->client.e.fetch.state = 0;
+ }
if (bd->client.netwm.fetch.type)
{
e_hints_window_type_get(bd);
@@ -4689,11 +4702,11 @@
}
}
free(pnd);
- bd->pending_move_resize =
evas_list_remove_list(bd->pending_move_resize, bd->pending_move_resize);
+ bd->pending_move_resize =
evas_list_remove_list(bd->pending_move_resize,
+
bd->pending_move_resize);
}
/* Recreate state */
- /* FIXME: this should be split into property fetches and state setup */
e_hints_window_init(bd);
ecore_x_icccm_move_resize_send(bd->client.win,
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- e_hints.h 11 Aug 2005 04:44:08 -0000 1.20
+++ e_hints.h 30 Aug 2005 01:15:25 -0000 1.21
@@ -41,6 +41,9 @@
EAPI void e_hints_window_stacking_set(E_Border *bd, E_Stacking stacking);
EAPI void e_hints_window_desktop_set(E_Border *bd);
-
+
+EAPI void e_hints_window_e_state_set(E_Border *bd);
+EAPI void e_hints_window_e_state_get(E_Border *bd);
+
#endif
#endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -3 -r1.66 -r1.67
--- e_hints.c 29 Aug 2005 23:04:21 -0000 1.66
+++ e_hints.c 30 Aug 2005 01:15:25 -0000 1.67
@@ -442,6 +442,14 @@
* show it! */
else if (bd->desk == e_desk_current_get(bd->zone))
e_border_show(bd);
+ /* e hints */
+ if (bd->client.e.state.centered)
+ {
+ e_border_move(bd,
+ bd->zone->x + (bd->zone->w - bd->w) / 2,
+ bd->zone->y + (bd->zone->h - bd->h) / 2);
+
+ }
/* Update stacking */
e_hints_client_list_set();
@@ -452,9 +460,7 @@
e_hints_window_state_set(E_Border *bd)
{
Ecore_X_Window_State state[10];
- int num;
-
- num = 0;
+ int num = 0;
if (bd->client.netwm.state.modal)
state[num++] = ECORE_X_WINDOW_STATE_MODAL;
@@ -1074,3 +1080,29 @@
#endif
bd->client.netwm.desktop = (bd->desk->y * bd->zone->desk_x_count) +
bd->desk->x;
}
+
+void
+e_hints_window_e_state_get(E_Border *bd)
+{
+ /* Remember to update the count if we add more states! */
+ Ecore_X_Atom state[1];
+ int num;
+
+ memset(state, 0, sizeof(state));
+ num = ecore_x_window_prop_card32_get(bd->client.win, E_ATOM_WINDOW_STATE,
state, 1);
+ if (num)
+ {
+ int i;
+ for (i = 0; i < num; i++)
+ {
+ if (state[i] == E_ATOM_WINDOW_STATE_CENTERED)
+ bd->client.e.state.centered = 1;
+ }
+ }
+}
+
+void
+e_hints_window_e_state_set(E_Border *bd)
+{
+ /* TODO */
+}
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs