[maemo-commits] [maemo-commits] r18255 - in projects/haf/trunk/libmatchbox2: . matchbox/core
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed May 6 10:51:44 EEST 2009
- Previous message: [maemo-commits] r18254 - projects/haf/trunk/libmatchbox2/debian
- Next message: [maemo-commits] r18256 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: aendrodi Date: 2009-05-06 10:51:40 +0300 (Wed, 06 May 2009) New Revision: 18255 Modified: projects/haf/trunk/libmatchbox2/ChangeLog projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h Log: Now, try to deal with preexisting fullscreen clients correctly, for real. * matchbox/core/mb-wm-client-base.c (mb_wm_client_base_realize): Do create xwin_frame for fs clients but don't reparent them; rather reparent them to the root window. This way base_display_sync() won't be confused by the lack of xwin_frame. * matchbox/core/mb-wm-client-base.h (MB_WM_DBG_SKIP_UNMAPS): Macro for skip_unmaps debugging. * matchbox/core/mb-window-manager.c: Use it. Modified: projects/haf/trunk/libmatchbox2/ChangeLog =================================================================== --- projects/haf/trunk/libmatchbox2/ChangeLog 2009-05-06 07:38:14 UTC (rev 18254) +++ projects/haf/trunk/libmatchbox2/ChangeLog 2009-05-06 07:51:40 UTC (rev 18255) @@ -1,3 +1,17 @@ +2009-05-06 Adam Endrodi <adam.endrodi at blumsoft.eu> + + Now, try to deal with preexisting fullscreen clients correctly, + for real. + + * matchbox/core/mb-wm-client-base.c (mb_wm_client_base_realize): + Do create xwin_frame for fs clients but don't reparent them; + rather reparent them to the root window. This way base_display_sync() + won't be confused by the lack of xwin_frame. + * matchbox/core/mb-wm-client-base.h (MB_WM_DBG_SKIP_UNMAPS): + Macro for skip_unmaps debugging. + * matchbox/core/mb-window-manager.c: + Use it. + 2009-05-06 Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Release 0.2.37 Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c 2009-05-06 07:38:14 UTC (rev 18254) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-window-manager.c 2009-05-06 07:51:40 UTC (rev 18255) @@ -475,6 +475,7 @@ /* When we skip an unmap, skip a map too. */ client->skip_unmaps--; client->skip_maps++; + MB_WM_DBG_SKIP_UNMAPS (client); } else { @@ -763,7 +764,10 @@ if (mb_wm_is_my_window (wm, xev->window, &client)) { if (client && client->skip_maps) - client->skip_maps--; + { + client->skip_maps--; + MB_WM_DBG_SKIP_UNMAPS (client); + } else if (client) { /* @@ -1365,6 +1369,7 @@ */ client->skip_unmaps++; client->skip_maps--; + MB_WM_DBG_SKIP_UNMAPS (client); #if ENABLE_COMPOSITE /* Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c 2009-05-06 07:38:14 UTC (rev 18254) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.c 2009-05-06 07:51:40 UTC (rev 18255) @@ -226,9 +226,11 @@ */ XReparentWindow(wm->xdpy, MB_WM_CLIENT_XWIN(client), - client->xwin_frame, + (client->window->ewmh_state + & MBWMClientWindowEWMHStateFullscreen) + ? client->wmref->root_win->xwindow + : client->xwin_frame, 0, 0); - } else { @@ -514,6 +516,7 @@ if (!fullscreen) { client->skip_unmaps++; + MB_WM_DBG_SKIP_UNMAPS (client); XReparentWindow(wm->xdpy, MB_WM_CLIENT_XWIN(client), client->xwin_frame, 0, 0); XMapWindow(wm->xdpy, client->xwin_frame); @@ -529,7 +532,10 @@ else { if (is_window_mapped(wm->xdpy, MB_WM_CLIENT_XWIN(client))) - client->skip_unmaps++; + { + client->skip_unmaps++; + MB_WM_DBG_SKIP_UNMAPS (client); + } XReparentWindow(wm->xdpy, MB_WM_CLIENT_XWIN(client), wm->root_win->xwindow, 0, 0); @@ -541,6 +547,7 @@ else { client->skip_unmaps++; + MB_WM_DBG_SKIP_UNMAPS (client); XReparentWindow(wm->xdpy, MB_WM_CLIENT_XWIN(client), wm->root_win->xwindow, client->window->geometry.x, Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h 2009-05-06 07:38:14 UTC (rev 18254) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-base.h 2009-05-06 07:51:40 UTC (rev 18255) @@ -25,6 +25,14 @@ #define MB_WM_CLIENT_BASE_CLASS(c) ((MBWMClientBaseClass*)(c)) #define MB_WM_TYPE_CLIENT_BASE (mb_wm_client_base_class_type ()) +#if 0 +# define MB_WM_DBG_SKIP_UNMAPS(c) \ + g_debug("%s:%u SKIP_UNMAPS c=%p, skip_unmaps=%d, skip_maps=%d", \ + __FUNCTION__, __LINE__, (c), (c)->skip_unmaps, (c)->skip_maps) +#else +# define MB_WM_DBG_SKIP_UNMAPS(c) /* NOP */ +#endif + /** * A MBWindowManagerClient which exists to be the superclass of all classes * representing particular types of client.
- Previous message: [maemo-commits] r18254 - projects/haf/trunk/libmatchbox2/debian
- Next message: [maemo-commits] r18256 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]