diff options
author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-17 17:22:01 +0100 |
---|---|---|
committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-17 17:23:36 +0100 |
commit | e0e46a4f6bf852d5ead8b8c015aa8eaf4e80599e (patch) | |
tree | 036fae326f5acfb16189add3d9bbd491cd5579e5 | |
parent | 76510619206ae8233ed49b379343b689a8028920 (diff) | |
download | gtk+-e0e46a4f6bf852d5ead8b8c015aa8eaf4e80599e.tar.gz |
mir: update surface type based on events
-rw-r--r-- | gdk/mir/gdkmir-private.h | 2 | ||||
-rw-r--r-- | gdk/mir/gdkmireventsource.c | 1 | ||||
-rw-r--r-- | gdk/mir/gdkmirwindowimpl.c | 17 |
3 files changed, 16 insertions, 4 deletions
diff --git a/gdk/mir/gdkmir-private.h b/gdk/mir/gdkmir-private.h index 78e3ed3415..8305096241 100644 --- a/gdk/mir/gdkmir-private.h +++ b/gdk/mir/gdkmir-private.h @@ -61,6 +61,8 @@ GdkWindowImpl *_gdk_mir_window_impl_new (void); void _gdk_mir_window_impl_set_surface_state (GdkMirWindowImpl *impl, MirSurfaceState state); +void _gdk_mir_window_impl_set_surface_type (GdkMirWindowImpl *impl, MirSurfaceType type); + void _gdk_mir_window_impl_set_cursor_state (GdkMirWindowImpl *impl, gdouble x, gdouble y, gboolean cursor_inside, MirMotionButton button_state); void _gdk_mir_window_impl_get_cursor_state (GdkMirWindowImpl *impl, gdouble *x, gdouble *y, gboolean *cursor_inside, MirMotionButton *button_state); diff --git a/gdk/mir/gdkmireventsource.c b/gdk/mir/gdkmireventsource.c index 61ae346077..cfe36e8df5 100644 --- a/gdk/mir/gdkmireventsource.c +++ b/gdk/mir/gdkmireventsource.c @@ -343,6 +343,7 @@ handle_surface_event (GdkWindow *window, const MirSurfaceEvent *event) switch (event->attrib) { case mir_surface_attrib_type: + _gdk_mir_window_impl_set_surface_type (impl, event->value); break; case mir_surface_attrib_state: _gdk_mir_window_impl_set_surface_state (impl, event->value); diff --git a/gdk/mir/gdkmirwindowimpl.c b/gdk/mir/gdkmirwindowimpl.c index f5cf957124..418724be42 100644 --- a/gdk/mir/gdkmirwindowimpl.c +++ b/gdk/mir/gdkmirwindowimpl.c @@ -93,6 +93,12 @@ _gdk_mir_window_impl_set_surface_state (GdkMirWindowImpl *impl, MirSurfaceState } void +_gdk_mir_window_impl_set_surface_type (GdkMirWindowImpl *impl, MirSurfaceType type) +{ + impl->surface_type = type; +} + +void _gdk_mir_window_impl_set_cursor_state (GdkMirWindowImpl *impl, gdouble x, gdouble y, @@ -741,7 +747,6 @@ gdk_mir_window_impl_set_type_hint (GdkWindow *window, { case GDK_WINDOW_TYPE_HINT_NORMAL: case GDK_WINDOW_TYPE_HINT_DOCK: - case GDK_WINDOW_TYPE_HINT_TOOLBAR: case GDK_WINDOW_TYPE_HINT_DESKTOP: mir_type = mir_surface_type_normal; break; @@ -755,7 +760,7 @@ gdk_mir_window_impl_set_type_hint (GdkWindow *window, case GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU: case GDK_WINDOW_TYPE_HINT_POPUP_MENU: case GDK_WINDOW_TYPE_HINT_COMBO: - mir_type = mir_surface_type_popover; + mir_type = mir_surface_type_menu; break; case GDK_WINDOW_TYPE_HINT_TOOLTIP: mir_type = mir_surface_type_tip; @@ -765,6 +770,9 @@ gdk_mir_window_impl_set_type_hint (GdkWindow *window, case GDK_WINDOW_TYPE_HINT_NOTIFICATION: mir_type = mir_surface_type_overlay; break; + case GDK_WINDOW_TYPE_HINT_TOOLBAR: + mir_type = mir_surface_type_satellite; + break; } set_surface_type (GDK_MIR_WINDOW_IMPL (window->impl), mir_type); @@ -780,7 +788,6 @@ gdk_mir_window_impl_get_type_hint (GdkWindow *window) case mir_surface_type_normal: case mir_surface_type_freestyle: case mir_surface_type_inputmethod: - case mir_surface_type_satellite: return GDK_WINDOW_TYPE_HINT_NORMAL; case mir_surface_type_utility: return GDK_WINDOW_TYPE_HINT_UTILITY; @@ -788,10 +795,12 @@ gdk_mir_window_impl_get_type_hint (GdkWindow *window) return GDK_WINDOW_TYPE_HINT_DIALOG; case mir_surface_type_tip: return GDK_WINDOW_TYPE_HINT_TOOLTIP; - case mir_surface_type_popover: + case mir_surface_type_menu: return GDK_WINDOW_TYPE_HINT_MENU; case mir_surface_type_overlay: return GDK_WINDOW_TYPE_HINT_NOTIFICATION; + case mir_surface_type_satellite: + return GDK_WINDOW_TYPE_HINT_TOOLBAR; case mir_surface_types: break; } |