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: Add fetch flag for netwm/icccm state. Easier to manipulate before a new client is mapped. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.246 retrieving revision 1.247 diff -u -3 -r1.246 -r1.247 --- e_border.c 6 Jun 2005 17:46:36 -0000 1.246 +++ e_border.c 7 Jun 2005 13:16:23 -0000 1.247 @@ -343,6 +343,8 @@ bd->client.icccm.fetch.transient_for = 1; else if (atoms[i] == ECORE_X_ATOM_WM_WINDOW_ROLE) bd->client.icccm.fetch.window_role = 1; + else if (atoms[i] == ECORE_X_ATOM_WM_STATE) + bd->client.icccm.fetch.state = 1; } /* netwm, loop again, netwm will ignore some icccm, so we * have to be sure that netwm is checked after */ @@ -385,20 +387,14 @@ */ bd->client.netwm.fetch.type = 1; } + else if (atoms[i] == ECORE_X_ATOM_NET_WM_STATE) + { + bd->client.netwm.fetch.state = 1; + } } free(atoms); } } -/* - bd->client.icccm.fetch.title = 1; - bd->client.icccm.fetch.name_class = 1; - bd->client.icccm.fetch.icon_name = 1; - bd->client.icccm.fetch.machine = 1; - bd->client.icccm.fetch.hints = 1; - bd->client.icccm.fetch.size_pos_hints = 1; - bd->client.icccm.fetch.protocol = 1; - bd->client.mwm.fetch.hints = 1; - */ bd->client.border.changed = 1; bd->client.w = att->w; @@ -3139,11 +3135,6 @@ 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; @@ -3236,34 +3227,15 @@ bd->client.netwm.fetch.strut = 0; } - if (bd->changes.icon) + if (bd->client.icccm.fetch.state) { - if (bd->icon_object) - { - evas_object_del(bd->icon_object); - bd->icon_object = NULL; - } - - bd->icon_object = e_border_icon_add(bd, bd->bg_evas); - if (bd->bg_object) - { - evas_object_show(bd->icon_object); - edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object); - } - else - { - evas_object_hide(bd->icon_object); - } - - { - E_Event_Border_Icon_Change *ev; - - ev = calloc(1, sizeof(E_Event_Border_Icon_Change)); - ev->border = bd; - e_object_ref(E_OBJECT(bd)); - ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev, _e_border_event_border_icon_change_free, NULL); - } - bd->changes.icon = 0; + bd->client.icccm.state = ecore_x_icccm_state_get(bd->client.win); + bd->client.icccm.fetch.state = 0; + } + if (bd->client.netwm.fetch.state) + { + e_hints_window_state_get(bd); + bd->client.netwm.fetch.state = 0; } if (bd->client.netwm.fetch.type) { @@ -3274,6 +3246,23 @@ bd->client.border.name = strdup("borderless"); bd->client.border.changed = 1; } + if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) + { + if (bd->client.border.name) free(bd->client.border.name); + bd->client.border.name = strdup("borderless"); + bd->client.border.changed = 1; + + if (!bd->client.netwm.state.skip_pager) + { + bd->client.netwm.state.skip_pager = 1; + bd->client.netwm.update.state = 1; + } + if (!bd->client.netwm.state.skip_taskbar) + { + bd->client.netwm.state.skip_taskbar = 1; + bd->client.netwm.update.state = 1; + } + } bd->client.netwm.fetch.type = 0; } @@ -3419,6 +3408,41 @@ bd->client.icccm.window_role = ecore_x_icccm_window_role_get(bd->client.win); bd->client.icccm.fetch.window_role = 0; } + if (bd->client.netwm.update.state) + { + e_hints_window_state_set(bd); + bd->client.netwm.update.state = 0; + } + if (bd->changes.icon) + { + if (bd->icon_object) + { + evas_object_del(bd->icon_object); + bd->icon_object = NULL; + } + + bd->icon_object = e_border_icon_add(bd, bd->bg_evas); + if (bd->bg_object) + { + evas_object_show(bd->icon_object); + edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object); + } + else + { + evas_object_hide(bd->icon_object); + } + + { + E_Event_Border_Icon_Change *ev; + + ev = calloc(1, sizeof(E_Event_Border_Icon_Change)); + ev->border = bd; + e_object_ref(E_OBJECT(bd)); + ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev, + _e_border_event_border_icon_change_free, NULL); + } + bd->changes.icon = 0; + } if (bd->changes.shape) { Ecore_X_Rectangle *rects; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- e_border.h 6 Jun 2005 15:22:04 -0000 1.70 +++ e_border.h 7 Jun 2005 13:16:24 -0000 1.71 @@ -145,6 +145,7 @@ unsigned char protocol : 1; unsigned char transient_for : 1; unsigned char window_role : 1; + unsigned char state : 1; } fetch; } icccm; struct { @@ -216,18 +217,13 @@ unsigned char user_time : 1; unsigned char strut : 1; unsigned char type : 1; + unsigned char state : 1; /* No, fetch on new_client, shouldn't be changed after map. unsigned char pid : 1; */ /* No, ignore this unsigned char desktop : 1; */ - /* No, fetch on new_client, shouldn't be changed after map. - unsigned char type : 1; - */ - /* No, don't fetch state, update on client message - unsigned char state : 1; - */ } fetch; struct { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- e_hints.c 6 Jun 2005 15:22:05 -0000 1.48 +++ e_hints.c 7 Jun 2005 13:16:24 -0000 1.49 @@ -329,10 +329,6 @@ void e_hints_window_init(E_Border *bd) { - /* Don't need fetch flag, is onlt called from new border */ - e_hints_window_state_get(bd); - - bd->client.icccm.state = ecore_x_icccm_state_get(bd->client.win); if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_NONE) { if (bd->client.netwm.state.hidden) @@ -458,7 +454,6 @@ void e_hints_window_type_get(E_Border *bd) { - /* Don't need fetch flag, only called on new border */ bd->client.netwm.type = ecore_x_netwm_window_type_get(bd->client.win); } ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs