summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e547cfa)
* src/hildon-app-menu-private.h
* src/hildon-app-menu.c
(hildon_app_menu_class_init):
Bring back the 'external-border' style property
(hildon_app_menu_class_init, hildon_app_menu_init)
(hildon_app_menu_apply_style, hildon_app_menu_size_request):
Set a fixed width-request for the menu, independent of the number
of items.
Fixes: NB#94957 (Smoothly opened application menu)
+2009-04-01 Alberto Garcia <agarcia@igalia.com>
+
+ * src/hildon-app-menu-private.h
+ * src/hildon-app-menu.c
+ (hildon_app_menu_class_init):
+ Bring back the 'external-border' style property
+ (hildon_app_menu_class_init, hildon_app_menu_init)
+ (hildon_app_menu_apply_style, hildon_app_menu_size_request):
+ Set a fixed width-request for the menu, independent of the number
+ of items.
+
+ Fixes: NB#94957 (Smoothly opened application menu)
+
2009-03-30 Alberto Garcia <agarcia@igalia.com>
* src/hildon-defines.h: Define HILDON_WINDOW_TITLEBAR_HEIGHT
2009-03-30 Alberto Garcia <agarcia@igalia.com>
* src/hildon-defines.h: Define HILDON_WINDOW_TITLEBAR_HEIGHT
GList *buttons;
GList *filters;
guint columns;
GList *buttons;
GList *filters;
guint columns;
guint find_intruder_idle_id;
guint hide_idle_id;
};
guint find_intruder_idle_id;
guint hide_idle_id;
};
+hildon_app_menu_size_request (GtkWidget *widget,
+ GtkRequisition *requisition)
+{
+ HildonAppMenuPrivate *priv = HILDON_APP_MENU_GET_PRIVATE (widget);
+
+ GTK_WIDGET_CLASS (hildon_app_menu_parent_class)->size_request (widget, requisition);
+
+ requisition->width = priv->width_request;
+}
+
+static void
hildon_app_menu_realize (GtkWidget *widget)
{
Atom property, window_type;
hildon_app_menu_realize (GtkWidget *widget)
{
Atom property, window_type;
static void
hildon_app_menu_apply_style (GtkWidget *widget)
{
static void
hildon_app_menu_apply_style (GtkWidget *widget)
{
guint horizontal_spacing, vertical_spacing, filter_vertical_spacing;
guint horizontal_spacing, vertical_spacing, filter_vertical_spacing;
+ guint inner_border, external_border;
HildonAppMenuPrivate *priv;
priv = HILDON_APP_MENU_GET_PRIVATE (widget);
HildonAppMenuPrivate *priv;
priv = HILDON_APP_MENU_GET_PRIVATE (widget);
"vertical-spacing", &vertical_spacing,
"filter-vertical-spacing", &filter_vertical_spacing,
"inner-border", &inner_border,
"vertical-spacing", &vertical_spacing,
"filter-vertical-spacing", &filter_vertical_spacing,
"inner-border", &inner_border,
+ "external-border", &external_border,
NULL);
/* Set spacings */
NULL);
/* Set spacings */
/* Set inner border */
gtk_container_set_border_width (GTK_CONTAINER (widget), inner_border);
/* Set inner border */
gtk_container_set_border_width (GTK_CONTAINER (widget), inner_border);
+
+ /* Compute width request */
+ screen = gtk_widget_get_screen (widget);
+ if (gdk_screen_get_width (screen) < gdk_screen_get_height (screen)) {
+ external_border = 0;
+ }
+ priv->width_request = gdk_screen_get_width (screen) - external_border * 2;
+ gtk_window_move (GTK_WINDOW (widget), external_border, 0);
+ gtk_widget_queue_resize (widget);
priv->buttons = NULL;
priv->filters = NULL;
priv->columns = 2;
priv->buttons = NULL;
priv->filters = NULL;
priv->columns = 2;
+ priv->width_request = -1;
priv->find_intruder_idle_id = 0;
priv->hide_idle_id = 0;
priv->find_intruder_idle_id = 0;
priv->hide_idle_id = 0;
widget_class->button_release_event = hildon_app_menu_button_release;
widget_class->style_set = hildon_app_menu_style_set;
widget_class->delete_event = hildon_app_menu_delete_event_handler;
widget_class->button_release_event = hildon_app_menu_button_release;
widget_class->style_set = hildon_app_menu_style_set;
widget_class->delete_event = hildon_app_menu_delete_event_handler;
+ widget_class->size_request = hildon_app_menu_size_request;
g_type_class_add_private (klass, sizeof (HildonAppMenuPrivate));
g_type_class_add_private (klass, sizeof (HildonAppMenuPrivate));
"Border between menu edges and buttons",
0, G_MAXUINT, 16,
G_PARAM_READABLE));
"Border between menu edges and buttons",
0, G_MAXUINT, 16,
G_PARAM_READABLE));
+
+ gtk_widget_class_install_style_property (
+ widget_class,
+ g_param_spec_uint (
+ "external-border",
+ "Border between menu and screen edges (in horizontal mode)",
+ "Border between the right and left edges of the menu and "
+ "the screen edges (in horizontal mode)",
+ 0, G_MAXUINT, 50,
+ G_PARAM_READABLE));