Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_border.h e_hints.c Log Message: For the speed freak. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.231 retrieving revision 1.232 diff -u -3 -r1.231 -r1.232 --- e_border.c 30 May 2005 06:24:14 -0000 1.231 +++ e_border.c 31 May 2005 06:52:04 -0000 1.232 @@ -2100,6 +2100,10 @@ } else { + /* FIXME: We should ignore this when the window isn't mapped. + * The window should state the properties by itself, and we + * will pick them up on border creation. + */ for (i = 0; i < 2; i++) { switch (e->state[i]) @@ -2835,6 +2839,11 @@ bd->client.netwm.name); } } + if (bd->client.netwm.update.state) + { + e_hints_window_state_set(bd); + bd->client.netwm.update.state = 0; + } if (bd->client.icccm.fetch.name_class) { int nc_change = 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- e_border.h 29 May 2005 11:37:18 -0000 1.62 +++ e_border.h 31 May 2005 06:52:05 -0000 1.63 @@ -195,6 +195,10 @@ unsigned char state : 1; */ } fetch; + + struct { + unsigned char state : 1; + } update; } netwm; Ecore_X_Window_Attributes initial_attributes; } client; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -3 -r1.39 -r1.40 --- e_hints.c 29 May 2005 11:37:18 -0000 1.39 +++ e_hints.c 31 May 2005 06:52:05 -0000 1.40 @@ -381,41 +381,43 @@ void e_hints_window_state_set(E_Border *bd) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MODAL, - bd->client.netwm.state.modal); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_STICKY, - bd->client.netwm.state.sticky); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, - bd->client.netwm.state.maximized_v); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, - bd->client.netwm.state.maximized_h); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SHADED, - bd->client.netwm.state.shaded); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SKIP_TASKBAR, - bd->client.netwm.state.skip_taskbar); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SKIP_PAGER, - bd->client.netwm.state.skip_pager); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN, - bd->client.netwm.state.hidden); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_FULLSCREEN, - bd->client.netwm.state.fullscreen); - + Ecore_X_Window_State state[10]; + int num; + + num = 0; + + if (bd->client.netwm.state.modal) + state[num++] = ECORE_X_WINDOW_STATE_MODAL; + if (bd->client.netwm.state.sticky) + state[num++] = ECORE_X_WINDOW_STATE_STICKY; + if (bd->client.netwm.state.maximized_v) + state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_VERT; + if (bd->client.netwm.state.maximized_h) + state[num++] = ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ; + if (bd->client.netwm.state.shaded) + state[num++] = ECORE_X_WINDOW_STATE_SHADED; + if (bd->client.netwm.state.skip_taskbar) + state[num++] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; + if (bd->client.netwm.state.skip_pager) + state[num++] = ECORE_X_WINDOW_STATE_SKIP_PAGER; + if (bd->client.netwm.state.hidden) + state[num++] = ECORE_X_WINDOW_STATE_HIDDEN; + if (bd->client.netwm.state.fullscreen) + state[num++] = ECORE_X_WINDOW_STATE_FULLSCREEN; + switch (bd->client.netwm.state.stacking) { case E_STACKING_ABOVE: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 1); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 0); + state[num++] = ECORE_X_WINDOW_STATE_ABOVE; break; case E_STACKING_BELOW: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 0); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 1); + state[num++] = ECORE_X_WINDOW_STATE_BELOW; break; case E_STACKING_NONE: default: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 0); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 0); break; } + ecore_x_netwm_window_state_list_set(bd->client.win, state, num); } void e_hints_window_type_set(E_Border *bd) @@ -467,9 +469,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_MODAL, - bd->client.netwm.state.modal); + bd->client.netwm.update.state = 1; } break; case ECORE_X_WINDOW_STATE_STICKY: @@ -497,9 +497,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_STICKY, - bd->client.netwm.state.sticky); + bd->client.netwm.update.state = 1; if (bd->client.netwm.state.sticky) e_border_stick(bd); else @@ -531,9 +529,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, - bd->client.netwm.state.maximized_v); + bd->client.netwm.update.state = 1; if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) e_border_maximize(bd); @@ -567,9 +563,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, - bd->client.netwm.state.maximized_h); + bd->client.netwm.update.state = 1; if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h)) e_border_maximize(bd); @@ -603,9 +597,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_SHADED, - bd->client.netwm.state.shaded); + bd->client.netwm.update.state = 1; if (bd->client.netwm.state.shaded) e_border_shade(bd, e_hints_window_shade_direction_get(bd)); else @@ -637,9 +629,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_SKIP_TASKBAR, - bd->client.netwm.state.skip_taskbar); + bd->client.netwm.update.state = 1; } break; case ECORE_X_WINDOW_STATE_SKIP_PAGER: @@ -668,9 +658,7 @@ if (changed) { /* FIXME, we have a pager, care about this! */ - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_SKIP_PAGER, - bd->client.netwm.state.skip_pager); + bd->client.netwm.update.state = 1; } break; case ECORE_X_WINDOW_STATE_HIDDEN: @@ -701,9 +689,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_FULLSCREEN, - bd->client.netwm.state.fullscreen); + bd->client.netwm.update.state = 1; if (bd->client.netwm.state.fullscreen) e_border_fullscreen(bd); else @@ -745,9 +731,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_ABOVE, - bd->client.netwm.state.stacking); + bd->client.netwm.update.state = 1; if (bd->client.netwm.state.stacking) bd->layer = 150; else @@ -790,9 +774,7 @@ } if (changed) { - ecore_x_netwm_window_state_set(bd->client.win, - ECORE_X_WINDOW_STATE_BELOW, - bd->client.netwm.state.stacking); + bd->client.netwm.update.state = 1; if (bd->client.netwm.state.stacking) bd->layer = 50; else @@ -826,7 +808,7 @@ bd->client.netwm.state.fullscreen = 0; bd->client.netwm.state.stacking = 0; - state = ecore_x_netwm_window_state_get(bd->client.win, &num); + state = ecore_x_netwm_window_state_list_get(bd->client.win, &num); if (state) { for (i = 0; i < num; i++) @@ -891,7 +873,7 @@ } if (bd->client.netwm.state.hidden) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.hidden = 0; } } @@ -906,7 +888,7 @@ } if (!bd->client.netwm.state.hidden) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.hidden = 1; } } @@ -921,7 +903,7 @@ } if (bd->client.netwm.state.hidden) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.hidden = 0; } } @@ -931,12 +913,12 @@ { if ((!bd->client.netwm.state.shaded) && (on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SHADED, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.shaded = 1; } else if ((bd->client.netwm.state.shaded) && (!on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_SHADED, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.shaded = 0; } } @@ -967,22 +949,22 @@ { if ((!bd->client.netwm.state.maximized_v) && (on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_v = 1; } else if ((bd->client.netwm.state.maximized_v) && (!on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_v = 0; } if ((!bd->client.netwm.state.maximized_h) && (on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_h = 1; } else if ((bd->client.netwm.state.maximized_h) && (!on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_h = 0; } } @@ -992,12 +974,12 @@ { if ((!bd->client.netwm.state.fullscreen) && (on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_FULLSCREEN, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.fullscreen = 1; } else if ((bd->client.netwm.state.fullscreen) && (!on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_FULLSCREEN, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.fullscreen = 0; } } @@ -1007,12 +989,12 @@ { if ((!bd->client.netwm.state.sticky) && (on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_STICKY, 1); + bd->client.netwm.update.state = 1; bd->client.netwm.state.sticky = 1; } else if ((bd->client.netwm.state.sticky) && (!on)) { - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_STICKY, 0); + bd->client.netwm.update.state = 1; bd->client.netwm.state.sticky = 0; } } @@ -1021,31 +1003,10 @@ e_hints_window_stacking_set(E_Border *bd, E_Stacking stacking) { if (bd->client.netwm.state.stacking == stacking) return; - switch (stacking) - { - case E_STACKING_ABOVE: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 1); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 0); - break; - case E_STACKING_BELOW: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 0); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 1); - break; - case E_STACKING_NONE: - default: - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE, 0); - ecore_x_netwm_window_state_set(bd->client.win, ECORE_X_WINDOW_STATE_BELOW, 0); - break; - } + bd->client.netwm.update.state = 1; bd->client.netwm.state.stacking = stacking; } -/* - ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_MODAL, on); - ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_SKIP_TASKBAR, on); - ecore_x_netwm_window_state_set(win, ECORE_X_WINDOW_STATE_SKIP_PAGER, on); - */ - void e_hints_window_desktop_set(E_Border *bd) { ------------------------------------------------------- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs