[maemo-commits] [maemo-commits] r18700 - in projects/haf/trunk/libmatchbox2: . debian matchbox/client-types matchbox/core
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jun 11 10:28:35 EEST 2009
- Previous message: [maemo-commits] r18699 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18701 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kihamala Date: 2009-06-11 10:28:12 +0300 (Thu, 11 Jun 2009) New Revision: 18700 Modified: projects/haf/trunk/libmatchbox2/ChangeLog projects/haf/trunk/libmatchbox2/debian/changelog projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.h projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h Log: * matchbox/client-types/mb-wm-client-menu.c (mb_wm_client_menu_init): Add support for the new atom for legacy menus. Fixes: NB#121678. Also returned the dynamic placement code since it does not break submenus anymore. * matchbox/core/mb-wm-client-window.c (mb_wm_client_window_sync_properties), matchbox/core/mb-wm-client-window.h, matchbox/core/mb-wm-types.h, matchbox/core/mb-wm-atoms.c: Add support for _HILDON_WM_WINDOW_TYPE and _HILDON_WM_WINDOW_TYPE_LEGACY_MENU atoms. Modified: projects/haf/trunk/libmatchbox2/ChangeLog =================================================================== --- projects/haf/trunk/libmatchbox2/ChangeLog 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/ChangeLog 2009-06-11 07:28:12 UTC (rev 18700) @@ -1,3 +1,15 @@ +2009-06-11 Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> + + * matchbox/client-types/mb-wm-client-menu.c (mb_wm_client_menu_init): + Add support for the new atom for legacy menus. Fixes: NB#121678. Also + returned the dynamic placement code since it does not break submenus + anymore. + * matchbox/core/mb-wm-client-window.c + (mb_wm_client_window_sync_properties), + matchbox/core/mb-wm-client-window.h, matchbox/core/mb-wm-types.h, + matchbox/core/mb-wm-atoms.c: Add support for _HILDON_WM_WINDOW_TYPE + and _HILDON_WM_WINDOW_TYPE_LEGACY_MENU atoms. + 2009-06-08 Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Release 0.2.42 Modified: projects/haf/trunk/libmatchbox2/debian/changelog =================================================================== --- projects/haf/trunk/libmatchbox2/debian/changelog 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/debian/changelog 2009-06-11 07:28:12 UTC (rev 18700) @@ -1,6 +1,7 @@ matchbox-window-manager-2 (0.2.43-1~unreleased) unstable; urgency=low - * foo + Kimmo: + * Fixes: NB#121678 - Need WM support for _HILDON_WM_WINDOW_TYPE_LEGACY_MENU -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Mon, 8 Jun 2009 09:53:28 +0300 Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c 2009-06-11 07:28:12 UTC (rev 18700) @@ -120,24 +120,20 @@ geom.x = 0; } } - else + else if (win->hildon_type == + wm->atoms[MBWM_ATOM_HILDON_WM_WINDOW_TYPE_LEGACY_MENU]) { - /* hard-coded due to NB#117301 --- violates the Layout Guide a bit, - * but otherwise submenus can be placed on top of the main menu, making - * them unusable. */ - int title_x; + /* placement code for legacy application menu, only for the main menu, + * not for the submenus */ + gint title_x, title_y; - if (wm->xdpy_width > wm->xdpy_height) - title_x = 2 * 112 + 45; - else - /* portrait orientation */ - title_x = 112 + 45; + mb_wm_theme_get_title_xy (wm->theme, &title_x, &title_y); if (geom.x < title_x) geom.x = title_x; - if (geom.y < 56) - geom.y = 56; + if (geom.y < title_y) + geom.y = title_y; } g_debug ("%s: Menu will be at %d %d %d %d", __func__, geom.x, geom.y, Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c 2009-06-11 07:28:12 UTC (rev 18700) @@ -105,6 +105,8 @@ "_HILDON_STACKING_LAYER", "_HILDON_WM_NAME", "_HILDON_WM_WINDOW_TYPE_ANIMATION_ACTOR", + "_HILDON_WM_WINDOW_TYPE", + "_HILDON_WM_WINDOW_TYPE_LEGACY_MENU", }; /* FIXME: Error Traps */ Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.c 2009-06-11 07:28:12 UTC (rev 18700) @@ -43,6 +43,7 @@ COOKIE_WIN_NET_STATE, COOKIE_WIN_MWM_HINTS, COOKIE_WIN_HILDON_STACKING, + COOKIE_WIN_HILDON_TYPE, N_COOKIES }; @@ -224,6 +225,11 @@ = mb_wm_property_atom_req(wm, xwin, wm->atoms[MBWM_ATOM_NET_WM_WINDOW_TYPE]); + if (props_req & MBWM_WINDOW_PROP_WIN_HILDON_TYPE) + cookies[COOKIE_WIN_HILDON_TYPE] + = mb_wm_property_atom_req(wm, xwin, + wm->atoms[MBWM_ATOM_HILDON_WM_WINDOW_TYPE]); + if (props_req & MBWM_WINDOW_PROP_NET_STATE) cookies[COOKIE_WIN_NET_STATE] = mb_wm_property_atom_req(wm, xwin, @@ -475,6 +481,42 @@ result_atom = NULL; } + if (props_req & MBWM_WINDOW_PROP_WIN_HILDON_TYPE) + { + mb_wm_property_reply (wm, + cookies[COOKIE_WIN_HILDON_TYPE], + &actual_type_return, + &actual_format_return, + &nitems_return, + &bytes_after_return, + &result_atom, + &x_error_code); + + if (x_error_code + || actual_type_return != XA_ATOM + || actual_format_return != 32 + || nitems_return != 1 + || result_atom == NULL + ) + { + g_debug ("%s: ### Warning hildon type prop failed ###", __func__); + if (x_error_code == BadWindow) + goto badwindow_error; + } + else + { + if (win->hildon_type != ((Atom *)result_atom)[0]) + changes |= MBWM_WINDOW_PROP_WIN_HILDON_TYPE; + + win->hildon_type = ((Atom*)result_atom)[0]; + } + + if (result_atom) + XFree(result_atom); + + result_atom = NULL; + } + if (props_req & MBWM_WINDOW_PROP_NET_STATE) { mb_wm_property_reply (wm, Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.h =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.h 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client-window.h 2009-06-11 07:28:12 UTC (rev 18700) @@ -47,6 +47,7 @@ #define MBWM_WINDOW_PROP_CM_TRANSLUCENCY (1<<17) #define MBWM_WINDOW_PROP_MWM_HINTS (1<<18) #define MBWM_WINDOW_PROP_HILDON_STACKING (1<<19) +#define MBWM_WINDOW_PROP_WIN_HILDON_TYPE (1<<20) #define MBWM_WINDOW_PROP_ALL (0xffffffff) @@ -131,6 +132,7 @@ MBWindowManager *wm; Atom net_type; + Atom hildon_type; Bool want_key_input; Window xwin_group; Pixmap icon_pixmap, icon_pixmap_mask; Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h =================================================================== --- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h 2009-06-11 06:41:30 UTC (rev 18699) +++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h 2009-06-11 07:28:12 UTC (rev 18700) @@ -300,6 +300,11 @@ MBWM_ATOM_HILDON_WM_NAME, MBWM_ATOM_HILDON_WM_WINDOW_TYPE_ANIMATION_ACTOR, + /* "hildon window type", currently used to tell apart legacy menus from + * CSMs. */ + MBWM_ATOM_HILDON_WM_WINDOW_TYPE, + MBWM_ATOM_HILDON_WM_WINDOW_TYPE_LEGACY_MENU, + MBWM_ATOM_COUNT } MBWMAtom;
- Previous message: [maemo-commits] r18699 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18701 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]