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 enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs