[gtk+] mir: update surface type based on events



commit e0e46a4f6bf852d5ead8b8c015aa8eaf4e80599e
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date:   Mon Nov 17 17:22:01 2014 +0100

    mir: update surface type based on events

 gdk/mir/gdkmir-private.h    |    2 ++
 gdk/mir/gdkmireventsource.c |    1 +
 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 78e3ed3..8305096 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 61ae346..cfe36e8 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 f5cf957..418724b 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;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]