diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | matchbox/core/mb-window-manager.c | 18 | ||||
-rw-r--r-- | matchbox/core/mb-window-manager.h | 2 |
3 files changed, 25 insertions, 1 deletions
@@ -1,3 +1,9 @@ +2008-09-15 Ross Burton <ross@linux.intel.com> + + * matchbox/core/mb-window-manager.[ch]: + Make get_desktop_geometry a vfunc, so that subclasses can override + it. + 2008-09-12 Tomas Frydrych <tf@linux.intel.com> * matchbox/managers/simple/Makefile.am: diff --git a/matchbox/core/mb-window-manager.c b/matchbox/core/mb-window-manager.c index c7e65e5..6bb5bb6 100644 --- a/matchbox/core/mb-window-manager.c +++ b/matchbox/core/mb-window-manager.c @@ -76,6 +76,9 @@ static Bool mb_wm_is_my_window (MBWindowManager *wm, Window xwin, MBWindowManagerClient **client); +static void +mb_wm_real_get_desktop_geometry (MBWindowManager *wm, MBGeometry *geom); + static MBWindowManagerClient* mb_wm_client_new_func (MBWindowManager *wm, MBWMClientWindow *win) { @@ -259,6 +262,7 @@ mb_wm_class_init (MBWMObjectClass *klass) wm_class->theme_new = mb_wm_real_theme_new; wm_class->client_activate = mb_wm_activate_client_real; wm_class->layout_new = mb_wm_layout_new_real; + wm_class->get_desktop_geometry = mb_wm_real_get_desktop_geometry; #if ENABLE_CLUTTER_COMPOSITE_MANAGER wm_class->main = mb_wm_main_real; @@ -1346,7 +1350,7 @@ mb_wm_manage_preexistsing_wins (MBWindowManager* wm) } static void -mb_wm_get_desktop_geometry (MBWindowManager *wm, MBGeometry * geom) +mb_wm_real_get_desktop_geometry (MBWindowManager *wm, MBGeometry * geom) { MBWindowManagerClient *c; MBGeometry p_geom; @@ -1383,6 +1387,18 @@ mb_wm_get_desktop_geometry (MBWindowManager *wm, MBGeometry * geom) } static void +mb_wm_get_desktop_geometry (MBWindowManager *wm, MBGeometry * geom) +{ + MBWindowManagerClass *wm_class; + + wm_class = (MBWindowManagerClass *) MB_WM_OBJECT_GET_CLASS (wm); + + MBWM_ASSERT (wm_class->get_desktop_geometry); + + wm_class->get_desktop_geometry (wm, geom); +} + +static void mb_wm_update_root_win_rectangles (MBWindowManager *wm) { Display * dpy = wm->xdpy; diff --git a/matchbox/core/mb-window-manager.h b/matchbox/core/mb-window-manager.h index 02649d0..3e83532 100644 --- a/matchbox/core/mb-window-manager.h +++ b/matchbox/core/mb-window-manager.h @@ -125,6 +125,8 @@ struct MBWindowManagerClass MBWMCompMgr * (*comp_mgr_new) (MBWindowManager *wm); #endif + void (*get_desktop_geometry) (MBWindowManager *wm, MBGeometry *geom); + void (*main) (MBWindowManager *wm); }; |